#ruby-on-rails #ruby-on-rails-4 #has-and-belongs-to-many #form-helpers
#ruby-on-rails #ruby-on-rails-4 #имеет-и-принадлежит-многим #форма-помощники
Вопрос:
я хочу реорганизовать этот код:
<%= 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:
Поскольку вы используете rails 4, вы можете использовать collection_check_boxes
Он будет работать так же, как collection_select, поэтому
<%= f.collection_check_boxes(:departament_ids, Departament.all, :id, :name) %>
Комментарии:
1. В устаревших версиях существуют другие способы?
2. @user3251174 нет, это только rails 4. Rails 3 — это либо текущий метод, который у вас есть, либо реализация вашего собственного помощника, который работает так же, как и collection_check_boxes .