gpt4 book ai didi

ruby-on-rails - 为什么在 ruby​​ on rails 的 Controller 类中的 new 和 create 函数中创建了两个模型对象,而不是只使用一个?

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:41 26 4
gpt4 key购买 nike

这里有一段我​​不太理解的 Controller 类的代码。

我看到在新方法中创建了一个新的 Article 对象,并传递给表单使用它的相应 View 。

但我不明白为什么在 create 方法中使用从表单传递的参数创建另一个 Article 对象,而不是只使用在 new 中实例化的同一个对象。

(请注意,我是 Ruby on Rails 的新手,来自 Java 和 C++ 的面向对象世界。所以,我真的很关心对象引用和其他东西)

# GET /articles/new

def new

@article = Article.new

end


# POST /articles

# POST /articles.json

def create

@article = Article.new(article_params)

respond_to do |format|
if @article.save
format.html { redirect_to @article, notice: 'Article lll was successfully created.' }
format.json { render :show, status: :created, location: @article }
else
format.html { render :new }
format.json { render json: @article.errors, status: :unprocessable_entity }
end
end
end

最佳答案

在新 Action 中,没有创建文章。它被初始化。该对象用于向用户显示表单。

在创建 Action 中,首先使用用户请求参数初始化文章对象,然后调用@article.save保存

需要初始化两次是因为 Controller 在每次请求时都被初始化,并且实例变量在请求之间不可用。

关于ruby-on-rails - 为什么在 ruby​​ on rails 的 Controller 类中的 new 和 create 函数中创建了两个模型对象,而不是只使用一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26668199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com