我有一个button_to,我想执行PUT Action (关于此资源,只有一件事可以更新-它将被更新为“已确认”,因此没有其他与触发该 Action 相关的表单字段)。
这是我的观点(因为按钮位于属于另一个 Controller 的 View 上,所以明确给出了 Controller ):
<%= button_to "Acknowledged", :controller => 'practice_sessions', :id => @practice_session.id, :method => :put %>
在我的路由文件中,该资源已声明为静态资源:
resources :practice_sessions
此资源的 Controller 具有create和update操作,并且上面的button_to调用create操作。我希望它调用更新操作。
这是在创建操作触发之前通过日志记录的:
Started POST "/practice_sessions?id=21&method=put" for 127.0.0.1 at 2010-11-17 08:52:46 +0000
Processing by PracticeSessionsController#create as HTML
Parameters: {"authenticity_token"=>"1EW0IlI38d0f4wST5azrCEZVZPfih7i0UvCGSF7eqbc=", "id"=>"21", "method"=>"put"}
最佳答案
您的语法略有偏离。 button_to
接受三个参数:按钮标题,options
哈希和html_options
哈希。 :method=>:put
需要输入html_options
,而路由参数需要输入options
。因此,您可以像这样重写:
<%= button_to "Acknowledged", { :controller => 'practice_sessions',
:id => @practice_session.id},
:method => :put %>
单击该请求后,应使用
PracticeSessionsController#update
处理关于ruby-on-rails - Rails button_to正在调用POST操作,试图调用OUT操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4198405/