我正在更改模型,以便它不再使用单表继承。我删除了子类,并进行了一次迁移:
add_column :discounts, :name, :string
Discount.all.each do |discount|
discount.update(name: discount.type)
end
此崩溃时出现以下错误:
The single-table inheritance mechanism failed to locate the subclass: 'RetailerStaffFlatRate'
我可以简单地获取存储在数据库中的值,而不是使用discount.type
,因此模型不会崩溃吗?
答案 0 :(得分:0)
在父模型中,您可以定义一种获取它们的方法:
def self.types
unscoped.select(:type).distinct.pluck(:type)
end
然后只需使用Discount.types
,您将获得一个具有当前类型的数组。
注意这种方法仅列出数据库中存在的类型