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