0

私はユーザーモデルを持っていますhas_many。デフォルトのもののために、users テーブルに列を追加したいと考えています。移行はどのように行うべきですか?

class AddDefaultThingToUsers < ActiveRecord::Migration
  def change
    change_table :users do |t|
      t.integer :default_thing_id
    end
  end
end

これは正しいでしょうか?

更新(おそらく私は十分に明確ではありませんでした):

ユーザー has_many のメールについて考えてみましょう。電子メールはユーザーに属します。次に、default_email 列を users テーブルに追加します。

4

1 に答える 1

0

あなたはこれを行うことができます:

class AddDefaultThingToUsers < ActiveRecord::Migration
  def up
    add_column :users, :default_thing_id, :integer
    User.reset_column_information
    User.all.each do |p|
     p.update_attribute :default_thing_id, 1
    end
  end

  def down
    remove_column :users, :default_thing_id
  end
end

ありがとう

于 2013-09-30T06:52:45.517 に答える