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