我有以下迁移,我尝试添加两个新列,然后更新所有记录以获得新的默认值。但是,这不是按预期工作的。相反,我得到错误:undefined method 'fetch' for :boolean:Symbol
class AlterPostsTableAddPublishedAndSaved < ActiveRecord::Migration
class Post < ActiveRecord::Base
end
def change
add_column :posts, :saved, :published, :boolean, :default => 0
Post.reset_column_information
reversible do |dir|
dir.up { Post.update_all saved: false, published: true }
end
end
end
根据what I have read,我相信我会以正确的方式解决这个问题。有人可以解释一下吗
答案 0 :(得分:2)
这必须分两步完成,0不是布尔值,必须使用true或false。
add_column :posts, :saved, :boolean, default: false
add_column :posts, :published, :boolean, default: false