has_manyで関連しているモデルをfields_forで作成する際に、
フォームの数を可変にしたくなりますよね。
例えば在庫モデルにいくつもの商品を登録したい時とか。
最初は追加ボタンを押した回数だけループ回して、fields_forを作成したりしてたんですが、
便利なgemがあったので備忘録として残しておきます。
Gemfile
gem 'nested_form_fields'
上記を追加して「bundle update」を実行
application.js
//= require nested_form_fields
jsファイルには上記を追加しておきます。
これで下記のようにviewでfields_forの代わりにnested_fields_forが使えるようになります。
フィールドを追加する為のadd_nested_fields_linkや、
削除する為のremove_nested_fields_linkも用意してあるので、
かなり簡単に可変なフィールドを作ることができました。
具体的な使い方は下記を参考にさせて頂きました。
https://www.virment.com/add_and_remove_rails_nested_form_dynamically/