我现在已经在数据库中的表中添加了一个新列。我想在这个新列的一些行中添加一些值。我知道其中的逻辑。但实际上,我不知道如何添加它,也不知道如何用ruby on rails编写一个1次任务来完成它。有人能帮我吗?我只是需要一些主意。
data = Model.where(#your_condition)
如果所有的值相同
data.update_all(:new_column => "new value")
如果所有的值不同
data.each do |d|
d.update_attributes(:new_column => "some value")
end
您可以为此创建一个rake任务,并运行一次。
创建文件lib/tasks/my_namespace.rake
namespace :my_namespace do
desc "My Task description"
task :my_task => :environment do
# Code to make db change goes here
end
end
您可以从项目根文件夹(如)中的命令行调用任务
rake my_namespace:my_task RAILS_ENV=production