form_for 内で、check_boxを使って値を配列に格納し、それをPOSTする方法を考えていたら、
ちょこっと時間を使ってしまいました。

こちらがコードです。

#パラメーター
  def shop_params
    params.require(:shop).permit(:name, :about, flag: [])
  end

#_form.html.erb

<%= bootstrap_form_for(@shop) do |f| %>

    <%= f.text_field :name %>
    <%= f.text_field :about %>

    <% ['aaaa', 'bbbb', 'cccc'].each do |flag| %>
      # nil を入れないと、格納される値がflag: ["0","aaaa", "0","cccc","0",,,, ]のようになってしまうので、忘れないように
        <%= f.check_box(:flag, {:multiple => true}, flag, nil) %>
    <% end %>


    <%= f.submit class: 'btn btn-danger' %>
<% end %>

参考にした記事

Rails4で複数のチェックボックスを扱う
Display a checkbox list instead of multiple select
Manipulate an array attribute using multiple check boxes

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA