如何将params从Rails中的New传递给Create?

时间:2015-07-20 15:36:08

标签: ruby-on-rails rest model-view-controller controller

据我所知,rails表单的new操作通常会实例化一个模型,并提供一个包含允许参数的输入的视图。

def new
  @post = Post.new
end

我没有得到的是,用户提交的相同信息如何转移到Post.new操作中的create方法:

def create
  @post = Post.new(post_params)
  ...
end

尽管发生了页面刷新,rails如何将这些参数传递给create

1 个答案:

答案 0 :(得分:0)

您正在混合两个请求。点击Sub make_email() Dim mail_list, subject As String Dim i As Integer i = 2 subject = Sheets("Form").Cells(7, 2).Text Do While Sheets("Data").Cells(i, 4).Text <> "" If subject = Sheets("Data").Cells(i, "AW") Then mail_list = Cstr(Sheets("Data").Cells(i, "AW")) Exit Do End If i = i + 1 Loop Sheets("Data").ListObjects(mail_list).DataBodyRange.Copy Sheets("Email").Range("B2").PasteSpecial xlPasteValues End Sub 操作后,会显示包含new的视图。在呈现时,form操作完成,现在new操作与new操作无关。

您需要create操作来创建一个newform方法,在该方法中实际传递一个对象,在您的情况form_for中。

@post操作是独立的,而create收到的操作与params方法无关,那些new是通过params呈现的在new.html.erb视图文件中。

您还可以通过AJAX或甚至使用cURL或POSTMAN(镀铬扩展程序)发送数据来调用控制器中的form方法。

正如你问的那样:

  

尽管发生了页面刷新,rails如何引导这些参数创建?

Rails没有引导这些create,Rails在后端运行,Rails只接收那些params。它们是通过HTML表单发送的,正如我之前所说,还有其他方法可以发送params