2013-10-07 65 views
0

生成的表單時傳遞一個額外的PARAM我有一個表格:提交與的form_tag

<%= form_tag(example_path, method: :get) do %> 
… 
<% end %> 

我想喜歡與形式PARAMS一起傳遞一個額外的參數:

example: 1 

我已經試圖通過哈希到路徑幫手,但PARAMS被忽略:

form_tag(example_path(example: 1), method: :get) 

我如何添加這個PARAM 而不使用隱藏字段

+0

這很奇怪,如果我脫掉'method :: get',它會傳遞帶有窗體值的額外參數,但是如果我添加'method::get',它會忽略它們。可能是因爲表單被序列化並作爲get參數傳遞,替換定義爲「manualy」的形式 - 解決方法是使用post和get參數:'form_tag(example_path(example:1))':params [:example]是一個GET參數,而在表單中的所有參數將是POST – MrYoshiji

+0

@MrYoshiji不幸的是,這是一個搜索表單,我希望URL中的參數。 – Undistraction

+0

我明白,也許你可以使用Javascript手動添加它,但最好添加額外的GET參數仍然是隱藏的領域。 – MrYoshiji

回答

1

爲了要完成什麼,你需要更新你的路線:

# config/routes.rb 

get "example/:your_param" => "your_controller#example", :as => :example 

然後,你就可以做到這一點在你的觀點:

<%= form_tag (example_path('value'), method: :get) do %> 
.... 

希望這是有道理的,並幫助你。