使用复选框标签和button_to传递id集合

时间:2017-04-20 14:32:58

标签: ruby-on-rails

我正在尝试向页面上的元素添加一个复选框,然后将一组id(如果选中复选框)传递给控制器​​。

在我看来,我有......

<% @roles.each do |role| %>
      <li>
        <%= check_box_tag 'blah_ids[]', role.id -%>
        <%= h role.name -%>
      </li>
  <% end %>

...只有这个提交按钮...

  <%= button_to 'Call Action', bulk_update_path('blah_ids[]'), method: :post %>

在我的控制器中,我只是像这样打电话给看台...

  def bulk_update
    puts "Made it to controller; ids are: " + params.inspect
    redirect_to blah_path
  end

......得到......

Made it to controller; ids are: {"authenticity_token"=>"0ptHDPrSW9sjRYmsoPb/WyuTQxiR60RzVom9h4HjdWo=", "controller"=>"blah", "action"=>"bulk_update", "format"=>"blah_ids[]"}

上面的注意blah_ids[]为空白。我期待看到已检查的复选框的ID。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

问题是我需要在我的视图中将其包装在form_tag中并使用通用的submit_tag,如此...

<%= form_tag bulk_update_path(method: :post) do %>  
  <% @roles.each do |role| %>
      <li>
        <%= check_box_tag 'blah_ids[]', role.id -%>
        <%= h role.name -%>
      </li>
  <% end %>
  <%= submit_tag %> 
<% end %>