読者です 読者をやめる 読者になる 読者になる

Rails 初期データをフィクスチャからロードする

Rails

RailsによるアジャイルWebアプリケーション開発 第2版 P.254より

fixtureは本来テストデータをロードするものだが初期データのロードにも使える
使用できるファイル形式はCSV形式、YAML形式であれば使用できる

/db/migration/dir_nameにファイルをおくとして以下のように書ける

require 'active_record/fixtures'
class LoadData < ActiveRecord::Migration
  def self.up
    directory = File.join(File.dirname(__FILE__), "dir_name")
    Fixtures.create_fixtures(directory, 'filename')
  end
end

この時ファイル名はデータを格納するテーブル名と同名にする