将f.select更改为复选框

时间:2016-04-12 12:31:34

标签: ruby-on-rails checkbox

我在视图中有以下内容,可以选择几个类别:

<%= form_for(@survey) do |f| %>
    Categories <br>
    <%= f.select :category_ids, Category.all.collect {|x| [x.name, x.id]}, {}, :multiple => true %><br>
    <%= f.submit %>
<% end %>

我希望用户选择带复选框的类别而不是下拉列表。

我不确定这是怎么回事。两部分:1。它将如何显示多个复选框和2.如何保存用户的选择,因为它为上面的f.select保存正常。

我采用的方法(不完整)是迭代类别并为每个类别添加一个复选框。但是我不确定这是否能确保保存多个选项。

<% @categories.each do |category| %>
    <%= category.name %><br>
    <%= f.check_box  :category_ids %>
   

非常感谢任何正确方向的指导/提示。

1 个答案:

答案 0 :(得分:1)

您可以使用collection_check_boxes

<%= f.collection_check_boxes :category_ids, Category.all, :id, :name, {}, :multiple => true %><br>