fixtureがcsvでも良いことをしったのでmigration内で初期データをfixtureからロードできるようにしました。(見ての通りFixtures.create_fixturesってのがあるんだけどrequireとかが面倒なので。

config/initializers/rails_ext.rbとかに下記を書く。

module ActiveRecord::ConnectionAdapters::SchemaStatements
  def load_fixture(fixture, dir = "test/fixtures")
    require "active_record/fixtures" 
    Fixtures.create_fixtures(dir, fixture)
  end
end

これでこんな感じで書ける。

class CreatePrefectures < ActiveRecord::Migration
  def self.up
    create_table :prefectures do |t|
      t.references :region
      t.string :name
      t.string :reading
      t.string :roman
    end

    <strong>load_fixture :prefectures</strong>
  end

  def self.down
    drop_table :prefectures
  end
end

やっぱり都道府県名とか、csvで管理したほうが絶対良くない?(load_fixtureはymlでもOKだけど)

Comments


Option