gpt4 book ai didi

ruby-on-rails - Ruby on Rails 中 User.new 的解释? (来自 Michael Hartl 的教程)

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:41 25 4
gpt4 key购买 nike

我到处搜索,试图找到关于它是如何工作的/它的目的是什么的解释,但我找不到任何有用的东西。我正在做 Michael Hartl 的教程,我的问题主要是关于两个 Action :“新建”和“创建”。新操作具有以下内容:

def new
@user = User.new
end

在对应于“新建”操作的 View 中,有一个 form_for 帮助程序,用户可以在其中输入他们的属性并点击提交。正如预期的那样,form_for 帮助程序的开头如下所示:form_for(@user)

然而,这就是我被难住的地方......在创建操作中,有以下代码:

def create
@user = User.new(user_params)
#user_params is a function we defined which simply returns the permitted params from the user.

在“新建”操作中 @user = User.new 的目的是什么? User.new 到底完成了什么?我假设实例变量@user 是传递给表单所必需的,但在那种情况下,为什么我们必须在'create' 中重新声明@user isntance 变量?在我们的“创建”操作中仅使用 @user = User.new(user_params) 是否足够? User.new 是否需要以某种方式使表单正常运行?

我主要只是想弄清楚@user = User.new 在我们的"new"操作及其相应的"new" View (带有表单)中完成了什么,以及为什么当我们有一个“创建”时它是必要的实际上创建对象的操作。非常感谢任何帮助。谢谢大家一直尽力解释。提前感谢任何回答此问题的人。

最佳答案

新建和创建是不同的 Action 。当您获得新路线时,将调用 New。当您发布到新路线时,将调用 Create。因此,您必须以新方式创建用户,以便他们在表单中可用。您必须使用 create 中的表单内容创建用户,以便将其保存到数据库中。

您不能假设对 new 的请求将转到与创建请求相同的 Rails 实例。在代理后面运行应用的多个实例是很常见的。

关于ruby-on-rails - Ruby on Rails 中 User.new 的解释? (来自 Michael Hartl 的教程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33198766/

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