2012-10-03 142 views
0

我想合併form_tag中的URL參數,但是我發現我無法指定params被覆蓋的參數。傳遞參數的目的是提供過濾和排序變量,因此我希望它們在URL中可見並且不隱藏。向form_tag添加URL參數

我來最接近的是要做到這一點:

form_tag(:controller => 'assets',:action => 'index', :params => params.merge(:order => 'name'), :method => :get) do 

的問題是,:get方法作爲另一PARAM簡單的通過並沒有實際的方法,所以它解析爲POST

我也試過以下,這也不起作用。

form_tag(params.merge(:order => 'name', :method => :get) do 

的路徑是正確的,但網址參數的格式很奇怪,因爲你看到的參數是不與&前綴,但在提交表單時,仍然丟失。

action="/assets?commit=Filter&order=name&utf8=%E2%9C%93" method="get" 

這裏是覆蓋params的另一個例子。下面的代碼將生成表單代碼的基礎元素,但參數將被刪除。

form_tag(url_for(:order => 'name'), :method => :get) do 

底層代碼,其中PARAMS將不會在提交決議:

action="/asset_ratings?order=name" 

回答