2012-07-06 65 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

相關問題