(Rails3.2.6, Ruby1.9.3)
db/fixtures に hoge.yml を置いた場合
- db
- seeds.rb
- fixtures
- hoge.yml
- fuga.yml
- :
db/fixtures の yml を全て読み込む。
それから yml に erb のタグを書いても読み込むようにする。
ex:
hoge: date: <% Date.today %>
seeds.rb
ext = "yml" filepaths = Dir.glob(File.dirname(__FILE__) + "/fixtures/*." + ext) filepaths.each do | filepath | fixture = File.read("#{filepath}") data = YAML.load(ERB.new(fixture).result) tablename = File.basename filepath, "." + ext modelname = tablename.classify (modelname.constantize).create(data.values) end
データ投入
新たにデータベース、テーブルを作成し、初期データを投入の場合
rake db:setup
データベースに読み込む場合
rake db:seed