我不明白为什么会这样。这是我的表格:
<%= 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
知道原因吗?
答案 0 :(得分:1)
它将method: :get
解释为表单应该转到的路径的一部分,而不是作为form_tag
本身的附加选项。在散列中换行controller: :static_pages, action: :index
并在方法调用中添加括号。然后它应该工作:
<%= form_tag( {controller: :static_pages, action: :index}, method: :get ) do %>