使用复选框重构HABTM

时间:2014-06-26 14:46:55

标签: ruby-on-rails ruby-on-rails-4 has-and-belongs-to-many form-helpers

我想重构这段代码:

  <%= hidden_field_tag "contact[group_ids][]", nil %>
  <% Group.all.each do |g| %>
      <%= check_box_tag "contact[group_ids][]", g.id, @contact.group_ids.include?(g.id)%>
      <%= label_tag g.name %><br>
  <% end %>

我想使用表单方法,例如,但使用check_box:

<%= f.collection_select(:departament_ids, Departament.all, :id, :name, {include_blank: true}, {multiple: true}) %>

或者其他方式,但我想在空白选项的情况下使用hidden_field_tag进行编辑非常混乱,并且选择了@contact.group_ids.include?(g.id)选项。

有任何帮助吗?对不起,我的英文不好

1 个答案:

答案 0 :(得分:1)

当您使用rails 4时,您可以使用collection_check_boxes

它的工作方式与collection_select相同,所以

<%= f.collection_check_boxes(:departament_ids, Departament.all, :id, :name) %>