迁移不起作用,未定义的方法`fetch'

时间:2014-07-14 15:20:24

标签: ruby-on-rails database-migration

我有以下迁移,我尝试添加两个新列,然后更新所有记录以获得新的默认值。但是,这不是按预期工作的。相反,我得到错误: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,我相信我会以正确的方式解决这个问题。有人可以解释一下吗

1 个答案:

答案 0 :(得分:2)

这必须分两步完成,0不是布尔值,必须使用true或false。

add_column :posts, :saved, :boolean, default: false
add_column :posts, :published, :boolean, default: false