我有一个button_to,我想执行一个PUT动作(只有一件事可以更新关于这个资源 - 它将被更新为'已确认' ,所以没有其他表单字段与触发该动作相关联)。Rails3 button_to正在调用POST动作,试图调用PUT动作
这是我的看法(控制器被明确给出,因为按钮是属于另一个控制器视图):
<%= button_to "Acknowledged", :controller => 'practice_sessions', :id => @practice_session.id, :method => :put %>
在我的路线文件,资源已被宣布为REST资源:
resources :practice_sessions
此资源的控制器具有创建和更新操作,上面的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"}
嗨,谢谢你。我现在正在'没有路线匹配“/ practice_sessions”'。我认为这是因为在这种情况下,它只是针对/ practice_sessions(正如URL http:// localhost:3000/practice_sessions?id = 26所示)而不是/ practice_sessions/26。我会继续玩,但任何提示赞赏! – pakeha 2010-11-17 00:12:00
'rake routes'的输出是什么? – zetetic 2010-11-17 00:19:01
看起来如预期。下面是我想象是感兴趣的行: practice_session PUT /practice_sessions/:id(.:format){:行动=> “更新”,:控制器=> “practice_sessions”} practice_sessions POST/practice_sessions(。 :format){:action =>“create”,:controller =>“practice_sessions”} – pakeha 2010-11-17 06:22:23