在Rails中使用GET方法选项的button_to

时间:2011-12-30 21:57:42

标签: ruby-on-rails routing routes

我有以下按钮,我将其覆盖以生成GET请求:

= button_to "Tutor", {:controller => "appointments", :action => "new",
    :listing_id => @listing.id} , :method => :get

但是,我仍然收到带有额外参数的POST请求:方法:

  Processing by AppointmentsController#new as HTML
  Parameters: {"authenticity_token"=>"AWkL", "listing_id"=>"2", "method"=>"get"}

我的路线档案,我有:

 resources :appointments

我做错了什么?

谢谢。

4 个答案:

答案 0 :(得分:39)

只需使用方法:和:获取

button_to "New User", new_user_path, method: :get

答案 1 :(得分:12)

按钮不应该发送GET个请求。

您应该使用link_to代替。如果您希望它看起来像一个按钮,请应用一些CSS。这是一篇好文章:http://coding.smashingmagazine.com/2009/11/18/designing-css-buttons-techniques-and-resources/

答案 2 :(得分:1)

您可能需要查看UJS driver code

a\[data-method\]是此处使用的选择器:

所以以下内容应该有效(无法真正测试):

button_to "Tutor", {...}, :html => { "data-method" => "get" }

答案 3 :(得分:0)

您还可以使用带有按钮标签的链接。

link_to(new_appointments_path(listing.id)) { button_tag("My button", class: 'my-btn-class') }