0

我想在 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"
4

1 回答 1

0

根据我的经验,在表单中使用“隐藏”输入标签是通常的方式:

http://apidock.com/rails/ActionView/Helpers/FormTagHelper/hidden_​​field_tag

于 2013-03-03T21:28:38.603 回答