文档中可能有答案,但我似乎找不到好的答案.
所以在三个方面:url,:action,:方法,当在Rails中使用form_for时,它们有什么区别?
所以在三个方面:url,:action,:方法,当在Rails中使用form_for时,它们有什么区别?
解决方法
区别:url,:action和:method
:网址
如果要为任何特定控制器提交表单,请执行任何特定操作,并希望传递一些额外的参数(使用在控制器中定义的操作)
例如
<%= form_for @post,:url => {:controller => "your-controller-name",:action => "your-action-name"} do |f| %>
在上面的代码中,表单被提交给该控制器(你传递url)并转到那个(你传递动作)动作.它将默认为当前操作.
现在假设你想传递额外的参数,例如
form_for @post,:url => { :action => :update,:type => @type,:this => @currently_editing } do |f| ...
您可以传递额外的参数,如:type => @类型
所以:url是表单提交的URL.它需要您传递给url_for或link_to的相同字段.特别是你可以直接通过这里一个命名的路线.
:行动
form_for @post,:this => @currently_editing } do |f| ...
在上面的例子中,我们传递:action,如果我们想以不同的动作提交表单,那么我们通过:action和your-action-name表单被发布到该操作
:方法
方法用于要为该动作传递的方法.有几种方法,如put,post,get …
例如
form_for @post,:url => post_path(@post),:method => :put,....
在上面的form_for中我们通过:method => :当这个表单提交它会使用put方法