我想在 a 中合并 URL 参数form_tag
,但我发现我无法指定参数是什么,因为它们被覆盖了。传递参数的目的是提供过滤和排序变量,因此,我希望它们在 URL 中可见而不是隐藏。
我最接近的是这样做:
form_tag( :controller => 'assets',:action => 'index', :params => params.merge(:order => 'name'), :method => :get) do
问题是该:get
方法只是作为另一个参数传递而不是实际上作为方法传递,因此它解析为POST
.
我也尝试了以下方法,但也不起作用。
form_tag(params.merge(:order => 'name', :method => :get) do
路径是正确的,但是 URL 参数的格式很奇怪,因为您看到参数没有以 a 为前缀&
,但是在提交表单时仍然丢失了。
action="/assets?commit=Filter&order=name&utf8=%E2%9C%93" method="get"
这是覆盖参数的另一个示例。以下代码将生成表单代码的底层元素,但将删除参数。
form_tag(url_for(:order => 'name'), :method => :get) do
底层代码,参数在提交时不会被传递:
action="/asset_ratings?order=name"