2012-07-06 67 views
0

我不明白为什么会发生这种情况。这里是我的形式:我想使用GET方法发送值,但Rails坚持要调用POST方法

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

然而,而不是通过URL发送的search_text的valeu,它被调用POST方法,并在URL发送method=get

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

任何想法的原因是什么?

回答

1

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

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

我曾尝试过,但给我'SyntaxError' – gabrielhilal 2012-07-06 20:01:55

+0

哎呀!是的,解析器假定方法调用后的花括号是块而不是散列。用圆括号包裹方法调用应该修复它。我已经更新了我的答案。 – Emily 2012-07-06 20:05:00

+0

是的!问题解决了......非常感谢...... – gabrielhilal 2012-07-06 20:10:24

相关问题