据我所知,rails表单的new
操作通常会实例化一个模型,并提供一个包含允许参数的输入的视图。
def new
@post = Post.new
end
我没有得到的是,用户提交的相同信息如何转移到Post.new
操作中的create
方法:
def create
@post = Post.new(post_params)
...
end
尽管发生了页面刷新,rails如何将这些参数传递给create
?
答案 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
操作来创建一个new
到form
方法,在该方法中实际传递一个对象,在您的情况form_for
中。
@post
操作是独立的,而create
收到的操作与params
方法无关,那些new
是通过params
呈现的在new.html.erb视图文件中。
您还可以通过AJAX或甚至使用cURL或POSTMAN(镀铬扩展程序)发送数据来调用控制器中的form
方法。
正如你问的那样:
尽管发生了页面刷新,rails如何引导这些参数创建?
Rails没有引导这些create
,Rails在后端运行,Rails只接收那些params
。它们是通过HTML表单发送的,正如我之前所说,还有其他方法可以发送params
。