0
我正在运行rails迁移,其中对于所有记录,我想根据现有列的值设置新列的结果值 - '得分了'。ActiveRecord Migrations - 根据现有列的值设置新列的值
class AddResultToReports < ActiveRecord::Migration
def change
add_column :reports, :result, :integer
Report.all.each do |r|
r.update_attribute(:result, 0) if (r.score < 40)
r.update_attribute(:result, 1) if (r.score >= 40)
end
add_index :reports, :result
end
end
但是当我输入“斌/耙分贝:迁移”我得到以下错误:
rake aborted! StandardError: An error has occurred, this and all later migrations canceled: undefined method `<' for nil:NilClass
请帮帮忙,我怎么能写一个有条件的“如果”的轨道迁移?
是啊,如果得分是零,这是试图比较,如果“零<40”,这就是为什么它是失败的。我的错。谢谢! – GregF