这可能是另一个问题,但我找不到它。
我是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