Rails 中的参数如何从 New 传递到 Create 操作?
How are params passed from the New to Create action in Rails?
我了解 rails 表单的 new
操作通常会实例化模型并提供包含允许参数输入的视图。
def new
@post = Post.new
end
我不明白的是,用户提交的相同信息是如何传递到 create
操作中的 Post.new
方法的:
def create
@post = Post.new(post_params)
...
end
尽管发生了页面刷新,rails 如何将这些参数传送到 create
?
您将两个请求混在一起。当您点击 new
操作时,将呈现包含您的 form
的视图。当它被渲染时,new
动作完成,现在 new
动作与 create
动作无关。
您需要 new
操作来创建一个 form
通过 form_for
方法,您在该方法中实际传递了一个对象,在您的例子中是 @post
。
create
动作是独立的,params
是接收的,跟new
方法没有关系,那些params
是通过[=11=接收的] 在 new.html.erb 视图文件中呈现。
您还可以通过 AJAX 发送数据或什至使用 cURL 或 POSTMAN - chrome 扩展来调用控制器中的 create
方法。
如你所问:
How does rails channel these params to create despite the page refresh that occurs?
Rails 不在后端引导这些 params
,Rails 运行,Rails 只接收那些 params
。它们通过 HTML 形式发送,正如我之前所说,还有其他方式可以发送 params
。
我了解 rails 表单的 new
操作通常会实例化模型并提供包含允许参数输入的视图。
def new
@post = Post.new
end
我不明白的是,用户提交的相同信息是如何传递到 create
操作中的 Post.new
方法的:
def create
@post = Post.new(post_params)
...
end
尽管发生了页面刷新,rails 如何将这些参数传送到 create
?
您将两个请求混在一起。当您点击 new
操作时,将呈现包含您的 form
的视图。当它被渲染时,new
动作完成,现在 new
动作与 create
动作无关。
您需要 new
操作来创建一个 form
通过 form_for
方法,您在该方法中实际传递了一个对象,在您的例子中是 @post
。
create
动作是独立的,params
是接收的,跟new
方法没有关系,那些params
是通过[=11=接收的] 在 new.html.erb 视图文件中呈现。
您还可以通过 AJAX 发送数据或什至使用 cURL 或 POSTMAN - chrome 扩展来调用控制器中的 create
方法。
如你所问:
How does rails channel these params to create despite the page refresh that occurs?
Rails 不在后端引导这些 params
,Rails 运行,Rails 只接收那些 params
。它们通过 HTML 形式发送,正如我之前所说,还有其他方式可以发送 params
。