nested_attributesなデータをseeds.rbで一括して投入する

はじめに

Railsを利用していると、nested_attributesを利用する場面が多々発生するかと思います。親子関係にある複数のモデルを一括して管理できる、非常に便利な機能だと思います。ただ、こちらを利用した場合に、db/seeds.rbはどのように与えればいいのでしょうか。

実装

nested_attributesをdb/seeds.rbで扱う場合には、親要素が持つ子要素へのアクセサ*_attributesに対して、ハッシュの形でパラメータを与えると、親要素のcreate!により一括してインスタンスを生成することができます。

上記は「novel > chapter > section」のようなhas_manyの関係にある各モデルについて、そのインスタンスをnovel#create!により、一括して生成する場合のdb/seeds.rbとなります。

Rails

Posted by poison