2

シンプルなUserモデルの Rails 移行があります。

class Users < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name, :default => :null
      t.float :weight
      t.datetime :recorded_at
      t.timestamps
    end
  end
end

ユーザーの履歴用の 2 つ目のテーブルが必要です。明らかに、同じ列が別の名前である必要があります。また、ユーザー テーブルを参照する必要があります。

require_relative '20130718143019_create_history.rb'    

class History < Users
  def change
    create_table :history do |t|
      t.references :user
      # ...?
    end
  end
end

継承を使用して、すべての移行構成をコピーしないようにするにはどうすればよいですか?

4

1 に答える 1

1

キーボードを離れた後、トマトが目から落ちました。これを設定する方法は明らかでした。

class Users < ActiveRecord::Migration
  def change
    create_table :users do |t|
      prepare_columns(t)
    end
  end

  protected

  def prepare_columns(t)
    t.string :name, :default => :null
    t.float :weight
    t.datetime :recorded_at
    t.timestamps
  end

end

...

require_relative '20130718143019_create_history.rb'    

class History < Users
  def change
    create_table :history do |t|
      t.references :user
      prepare_columns(t)
    end
  end
end
于 2013-07-19T07:39:47.660 に答える