Railsでseed-fuを使って初期データを作成する

seed-fu のインストール

まず seed-fu をインストールします。

Gemfile

gem 'seed-fu'
$ bundle install 

を実行

ディレクトリを作成

次に seed ファイルを置くディレクトリを作成します。

db/fixtures
db/fixtures/development
db/fixtures/production

db/fixtures は必ず必要なディレクトリです。

db/fixtures に作成した seed ファイルを置くこともできますが、db/fixtures/development、 db/fixtures/production に seed ファイルを作成すると環境ごとに異なるデータを作成することができます。

seed ファイルの作成

db/fixturesに以下のように seed ファイルを作成します。
ここでは例として Category モデルを使っています。

01_category.rb

Category.seed do |s|
s.id = 1
s.name = 'HTML'
end

Category.seed do |s|
s.id = 2
s.name = 'CSS'
end

Category.seed do |s|
s.id = 3
s.name = 'Ruby'
end

seed_fu コマンドの実行

$ rails db:seed_fu

を実行することでデータが作成されます。

データの更新

一度作ったデータを更新したい時は、変更したい部分を修正し、もう一度$ rails db:seed_fu を実行します。


01_category.rb

...
Category.seed do |s|
s.id = 3
s.name = 'Ruby on Rails'
end