0
這裏是我的移民:軌道遷移古怪
class Avatar < ActiveRecord::Base
end
def self.up
add_column :users, :featured, :boolean, :default => false, :null => false
User.reset_column_information
Avatar.all.each do |a|
user = User.find(a.user_id)
user.featured = a.featured
user.save
end
drop_table :avatars
end
由於某種原因在運行時,該功能的屬性沒有得到保存。如果我從控制檯運行它,它沒有問題。
我注意到的另一個奇怪的事情是,如果我在列重置之後使遷移失敗,然後修復它使其完成,那麼當我重新運行它時,它將起作用。
當上面的代碼運行的是第一次,這是日誌輸出...
Migrating to MoveAvatarsToProfile (20101216003815)
** ActionMailerWithRequest: initialized properly
[1m[36mSQL (0.5ms)[0m [1m SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'
[0m
[1m[35mSQL (0.4ms)[0m SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'
[1m[36mSQL (0.3ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations"[0m
什麼想法?
Rails + Ruby版本?另外,如果你使用爆炸版本('user.save!'),有什麼錯誤? – Zabba 2010-12-17 02:16:43
沒有錯誤,但也沒有保存 – brewster 2010-12-17 02:41:03