我在activities
操作上创建了一个用于过滤和排序index
表的视图。用于排序设置为数组的字段的参数,并通过params[:sort]
(例如== ["created_at"]
)请求传递请求。
成功请求后,该作品和我的参数是:
{"direction"=>"desc","sort"=>["created_at"], "controller... etc }
然后我添加了dropbox for filtering table和hidden_field_tag来传递可排序的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">
答案 0 :(得分:0)
由于您有{"direction"=>"desc","sort"=>["created_at"], "controller... etc }
,此处 sort has an array as value
如果你想将array values
带入input
,你应该对html说它接受数组值,所以name="sort[]"
告诉Dom它应该采用数组值
更改,
<input type="hidden" name="sort" id="sort" value="created_at">
要,
<强> <input type="hidden" name="sort[]" id="sort" value="created_at">
强>