我创建了一个视图,用于对index
动作进行筛选和排序activities
表。要排序的字段的参数设置为数组并通过params[:sort]
(例如== ["created_at"]
)传递通过请求来请求。Ruby on rails:hidden_field_tag将数组转换为参数中的字符串
,成功的请求之后的作品和我的params为:
{"direction"=>"desc","sort"=>["created_at"], "controller... etc }
然后,我添加了过滤表和hidden_field_tag Dropbox的传递排序PARAMS这样的:
=form_tag actitvites_path, method: "get"
=radio_button_tag...
=radio_button_tag...
=select_tag...
=hidden_field_tag :direction, params[:direction]
=hidden_field_tag :sort, params[:sort]
=submit_tag "Filter", name: nil
但hidden_field_tag
排序转换初始值params[:sort]
== ["created_at"]
到简单的"created_at"
,我不知道为什么。这是一个问题。我得到的html:
<input type="hidden" name="direction" id="direction" value="asc">
<input type="hidden" name="sort" id="sort" value="created_at">
采取'名称= “排序[]”'和检查,'' – Sravan
谢谢!它可以工作,但是你能解释那里发生了什么吗?......因为我查看了有关hidden_field_tag方法的文档,并没有发现什么是转换参数。 – fomkin
如果你想将数组的值放入一个输入中,你应该说html接受数组的值,所以'name =“sort []”'告诉Dom它应该接受数组值。 – Sravan