2013-09-30 18 views
0

我有一個用戶模型是has_many的東西。我想在我的用戶表中添加一個默認的列。遷移應該如何進行?如何默認爲has_many中的很多

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

這是正確的嗎?

更新(也許我是不夠清楚):

考慮用戶的has_many電子郵件。電子郵件belongs_to用戶。現在我想爲用戶表添加一個default_email列。

+0

是default_thing_id同樣爲所有用戶? – tihom

+0

不會。它會引用數據庫中的唯一Thing。事物也屬於用戶 –

回答

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 

感謝

+0

對於所有用戶,default_thing_id都不相同,我不需要爲現有記錄分配遷移。 –

+0

比你不必編寫遷移部分。 –

相關問題