複数のcollection_selectで選択したIDを配列形式で送信する
what
複数のcollection_selectで選択したIDを配列形式で送信する方法
why
collection_select を利用した選択項目を複数設置する場面に置いて、パラメーターに配列形式で格納するという手段を取りたいが、どこを探しても見つからないため、いろいろさ試行錯誤していたら発見したので忘備録として投稿します。
方法
まずcollection_selectの基本から
<%= f.collection_select(:item_id, Item.all, :id, :name, {}, {class:"item-select"}) %>
引数の説明
第一引数
:item_id 保存先のカラム名
第二引数
Item.all データの入っているモデルを指定
第三引数
id 表示する際に参照するDBのカラム名
第四引数
name 実際に表示されるカラム名
第五引数
(オプション) {} {}はオプションの指定なし
htmlオプション {class:"genre-select"} CSSなどを当てるためのクラスなどを記述
↑今回はココに注目
こうします
<%= f.collection_select(:item_id, Item.all, :id, :name, {}, {name: item_ids[], class:"item-select"}) %>
name: item_ids[]
これです。 ここにname属性を記述します。name属性に[]を使用することにより配列として扱うことが出来るようになります。
<%= f.collection_select(:item_id, Item.all, :id, :name, {}, {name: item_ids[], class:"item-select"}) %>
<%= f.collection_select(:item_id, Item.all, :id, :name, {}, {name: item_ids[], class:"item-select"}) %>
この状態で送信すると以下のようにパラメータが確認できます。
以上となります。
初めての記事投稿なので、色々情けない部分が多いかと思われるかもしれませんがご容赦ください。
Author And Source
この問題について(複数のcollection_selectで選択したIDを配列形式で送信する), 我々は、より多くの情報をここで見つけました https://qiita.com/yamamo1984/items/f18adf96bebc19a23bf0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .