Ruby on rails:hidden_​​field_tag将数组转换为params

时间:2016-11-04 08:19:46

标签: ruby-on-rails

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

1 个答案:

答案 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">