肥大化するseeds.rbをうまい具合に管理する
seeds.rb中でif~elsifしたり、rakeタスクを環境分用意するなど、剛の者もいるようですが、それはあんまりにも辛みを予感させてしまいます。
個人的に楽でオススメなのが、環境毎のdirを切って、その下に実処理書いたファイル配置し、requireでごそっと開始させる方法。
root └ db ├ seeds.rb ├ seeds/ ├ development/ │ ├ users.rb │ └ ...~.rb ├ production/
こんな感じ。
規模が小さいなら、environmentごとのdir切らずに、直接ファイルおいても良いかも。
db/seeds.rbにはこんな感じの処理書いておく
seed_files_root="#{Rails.root}/db/seeds/#{Rails.env}" Dir.glob("#{seed_files_root}/**.rb").each{|file| require file if FileTest.file?(file) }
これによって、起動した時の環境に合わせたdirから、Seedするファイルが読み込まれて処理されるようになります。
というメモ。