我在表中添加了一个新列,但是我忘了添加:default选项.现在我想在每一行填充该列.
有没有办法使用控制台?我一直在谷歌搜索过去的一小时,但我找不到任何东西.
我知道如何为单个对象执行此操作,但对于模型中的所有对象都不知道.Foo.find(1).update_attribute(:myattribute,'value')
Jim*_*ang 131
试试这个:
Foo.update_all(some_column: "bar")
Run Code Online (Sandbox Code Playgroud)
这将生成对数据库的SQL查询:
UPDATE "foos" SET "some_column" = "bar";
Run Code Online (Sandbox Code Playgroud)
ste*_*och 25
由于您已在先前的迁移中创建了新字段,因此请创建全新的迁移:
rails g migration UpdateFoos
Run Code Online (Sandbox Code Playgroud)
修改迁移:
def self.up
say_with_time "Updating foos..." do
Foo.find(:all).each do |f|
f.update_attribute :myattribute, 'value'
end
end
end
# from command line
Rake db:migrate
Run Code Online (Sandbox Code Playgroud)
如果有效,请告诉我,可能需要进行一些调整.有关更多信息,请参阅rails docs:
| 归档时间: |
|
| 查看次数: |
38109 次 |
| 最近记录: |