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