Rails:从嵌套哈希中的表单中包装参数

时间:2013-05-20 19:14:34

标签: html ruby-on-rails ruby forms

我有以下搜索表格,也应该执行过滤:

<%= form_tag search_index_path, method: :get, id: 'search_form' do %>
  <%= text_field_tag :search, params[:search] %>
  <%= check_box_tag 'filter param', 'yes', true %>
  <%= submit_tag "Search", name: nil, class: 'btn' %>
<% end %>

我现在要做的是在嵌套哈希中包装用于过滤的参数,以便我在params中有如下内容:{"utf8"=>"✓", "search"=>"term", "action"=>"index", "controller"=>"search", "filter" => {"field" => "value"}}。请注意,过滤器参数是嵌套的

我找不到使用标准rails form helper来做到这一点的方法。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:8)

在所需的嵌套键周围使用[]。在您的示例中,将check_box更改为:

<%= check_box_tag 'filter[field]', 'value', true %>

如果您想要表格中的内容:

{ "filter" => { "subfilter" => { "field" => "value" } } }

您可以添加另一个[]

<%= check_box_tag 'filter[subfilter][field]', 'value', true %>