我是Rails的新手,我试图使用link_to helper来创建一个发出PUT请求而不是GET请求的链接。具体来说,我试图创建一个链接,从管理面板中激活我的应用中的用户帐户。我正在使用Rails 3.0.5。Ruby on Rails link_to使用put方法
我的routes.rb文件具有:
match '/admin/users/:id/activate' => 'admin#activate_user',
:action => :activate_user, :via => :put
我的视图具有:
link_to 'Activate', :action => :activate_user, :id => user.id, :method => :put
然而,这产生的URL(例如)/admin/users/7/activate?method=put
与源代码<a href="/admin/users/7/activate?method=put">Activate</a>
。
我想产生,而是<a href = "/admin/users/7/activate" data-method="put">Activate</a>
我知道我可以使用button_to,但我一直在这个问题搏斗了一会儿,我很困惑,为什么我看到这种行为,当其他教程说,我在做什么应该是有效的。我如何才能创建一个link_to帮手来处理我想要的行为?
耙路线为上述路径产生了什么?你可以发布吗? – prasvin 2012-02-16 05:32:08
这工作,谢谢!这是最干净的解决方案:) – maksim 2012-02-16 06:26:37
这不适合我。如果在link_to中没有定义方法,我会得到一个No route matches [GET]错误消息。 – ndemoreau 2012-08-14 06:10:37