运行rake db:migrate:
时出现以下错误StandardError:发生错误,此操作和所有后续迁移都已取消:
无法找到带有'id'的报告=所有[WHERE“报告”。“deleted_at”IS NULL]
这是我的2个迁移文件:
Class AddColorToReports < ActiveRecord::Migration
def self.up
add_column :reports, :button_color, :string
Report.find(:all).each do |r|
r.update_attribute(:color, r.top_stroke_color)
end
end
def self.down
remove_column :reports, :button_color
end
end
class AddDeletedAtToReport < ActiveRecord::Migration
def change
add_column :reports, :deleted_at, :datetime
end
end
运行Rail 3.2和4.0时迁移很好,但是在4.2.6中没有工作。
请告诉我如何解决这个问题?
答案 0 :(得分:2)
查看版本&gt;的方法find
的文档。 4.0:
按ID查找 - 这可以是特定的id(1),id列表(1, 5,6),或一组id([5,6,10])。如果找不到记录 所有列出的ID,然后RecordNotFound将被提升。如果 主键是一个整数,通过id查找使用它来强制其参数 to_i。
for version&lt; 4.0:
使用四种不同的检索方法进行查找: