Это было сложно из-за [], которые необходимы для работы с коллекциями флажков. Просто сделайте следующее:
Вид:
<% @books.each do |b| %>
<%= check_box_tag "books[#{b.id}]", b.book %>
<%= label_tag "books[#{b.id}]", b.book %>
<br />
<% end %>
Затем в контроллере получить доступ к параметру по values
. В противном случае это выглядит как 135 => Book1. Используйте values
, чтобы получить только Book1
Титулы [: книги] .values
Или еще более простой способ - просто обернуть check_box_tag
с помощью <label>
примерно так:
...
<label><%= check_box_tag "books[]", b.book %></label>
...
Обратите внимание, что теперь вам даже не нужно беспокоиться об уникальном идентификаторе через #{b.id}
, поэтому код контроллера может быть изменен на
params[:books] # notice the .values is removed