如何在 Rails 3 中为新列设置值



这可能是另一个问题,但我找不到它。

我是Rails的相对菜鸟。 我正在尝试向已经包含数据的表添加新列。 此列不允许空值。 更新所有现有记录以在此新列中具有值的最简单方法是什么? 我知道它可能在我的迁移的向上块中,但我不知道语法是什么。

def self.up
  change_table :reminders do |t|
    t.boolean :active
  end
  #model name is Reminder - how to update data with a value?
end

您可以做的是添加列,使用所需的值更新表中的所有记录,然后将其更改为不允许空值。

def self.up
  add_column :reminders, :active, :boolean, :default => true
  Reminder.update_all( "active = ?", true )
  change_column :reminders, :active, :boolean, :default => true, :null => :false
end

试试这个:

def self.up
  change_table :reminders do |t|
   t.boolean :active, :default => true #or your value
  end
#model name is Reminder - how to update data with a value?
end

相关内容

  • 没有找到相关文章

最新更新