我试图使用GET方法发送值,但Rails坚持要调用POST方法

时间:2012-07-06 19:55:12

标签: ruby-on-rails ruby-on-rails-3 forms post get

我不明白为什么会这样。这是我的表格:

<%= form_tag controller: :static_pages, action: :index, method: :get do %>
  <%= text_field_tag :search_text %>
  <%= submit_tag "Search", id: :search_button %>
<% end %>

但是,它不是通过网址发送search_text的valeu,而是调用post方法并在网址中发送method=get

http://localhost:3000/static_pages/index?method=get

知道原因吗?

1 个答案:

答案 0 :(得分:1)

它将method: :get解释为表单应该转到的路径的一部分,而不是作为form_tag本身的附加选项。在散列中换行controller: :static_pages, action: :index并在方法调用中添加括号。然后它应该工作:

<%= form_tag( {controller: :static_pages, action: :index}, method: :get ) do %>