こんにちは!kossyです!
今回はRailsにおいてseedデータ作成スクリプトを複数ファイルに分割する方法について、ブログに残してみたいと思います。
方法
seeds.rbに以下のスクリプトを追加します。
# db/seeds.rb # テーブル名を複数形で記載する table_names = [ 'admins', 'users', 'articles', 'comments' ] table_names.each do |table_name| path = Rails.root.join("db/seeds", Rails.env, table_name + ".rb") if File.exist?(path) puts "Creating #{table_name}..." require path end end
あとは環境ごとにディレクトリを作成して、データ生成スクリプトを記述したファイルを作成するだけです。
db/seeds/development/users.rb User.create!(name: 'hoge', email: 'fuga@example.com', password: 'password')
db/seeds/development/articles.rb Article.create!(title: 'hoge', body: 'blah, blah, blah...', user: User.first)
スクリプトの準備ができれば、
$ bundle exec rails db:seed
を実行すればOKです!