我确信有更好的标题,对此抱歉。
我有一个Verification
型号。理想情况下,会有各种其他模型类型能够将自己与单个Verification
记录相关联。例如。
Verification(id: 1, verifiable_type: 'Reference')
Reference(id: 1, verification_id: 1)
Reference(id: 2, verification_id: 1)
Verification(id: 2, verifiable_type: 'Degree')
Degree(id: 1, verification_id: 2)
Degree(id: 2, verification_id: 2)
我希望:class_name
上有一个简单的动态has_many
选项:
class Verification < ActiveRecord::Base
has_many :verifiables, class_name: -> { dynamic_class_name }
end
我99%确定反向关联实际上是开箱即用的。因此,使用上面的记录,以下应该没有问题:
class Reference < ActiveRecord::Base
belongs_to :verification
end
class Degree < ActiveRecord::Base
belongs_to :verification
end
有什么建议吗?
答案 0 :(得分:1)
而不是
has_many :verifiables, class_name: -> { dynamic_class_name }
替换为
def self.varifiables(type)
where(verifiable_type: type)
end