質問: 問題1 collection_selectにmultiple: trueオプションをつけると 先頭に空文字が入ってしまい値が保存できません > > サーバログ "brand_id"=>["", "350"], > > > どうしたら正しく値を保存できるでしょうか 問題2 multiple: trueオプションをつけるとvalidatesで弾かれた場合 値が消えてしまう。 ``` ブランド <%= f.collection_select :brand_id, Brand.where(id: 9..5000), :id, :name_ja, {}, {class: 'form-control multiselect multiselect-primary',multiple: true} %> ```
回答: 問題1は、`include_hidden: false` を追加すると大丈夫だと思います。 問題2は、brand_id ではなく、brand_idsにすれば解決しないでしょうか? `multiple: true`なので、複数のidを取得・設定する必要がある気がします。 ``` f.collection_select :brand_ids, Brand.where(id: 9..5000), :id, :name_ja, {include_hidden: false}, {class: 'form-control multiselect multiselect-primary',multiple: true} ```