加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails3 button_to正在调用POST动作,试图调用PU

发布时间:2020-12-17 04:21:17 所属栏目:百科 来源:网络整理
导读:我有一个button_to,我想执行PUT操作(只有一件事可以更新有关此资源 – 它将被更新为’已确认’,因此没有其他表单字段与触发操作相关联). 这是在我看来(控制器是明确给出的,因为按钮位于属于另一个控制器的视图上): %= button_to "Acknowledged",:controller
我有一个button_to,我想执行PUT操作(只有一件事可以更新有关此资源 – 它将被更新为’已确认’,因此没有其他表单字段与触发操作相关联).

这是在我看来(控制器是明确给出的,因为按钮位于属于另一个控制器的视图上):

<%= button_to "Acknowledged",:controller => 'practice_sessions',:id => @practice_session.id,:method => :put %>

在我的路由文件中,资源已被声明为一个宁静的资源:

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"}

解决方法

你的语法略有偏差. button_to有三个参数:按钮标题,选项哈希和html_options哈希. :method =>:put需要进入html_options,而路由参数需要进入选项.所以你可以像这样重写:
<%= button_to "Acknowledged",{ :controller => 'practice_sessions',:id => @practice_session.id},:method => :put %>

单击时,请求应由PracticeSessionsController#update处理

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读