我有以下型号:
class Installation < ActiveRecord::Base
belongs_to :original_lead, class_name: 'Lead'
end
class Lead < ActiveRecord::Base
has_many :originated_installations, as: :original_lead, class_name: 'Installation'
end
Lead使用STI,具有类型列。
这意味着我希望每个潜在客户都有多个安装。
问题在于我尝试做类似的事情:
Lead.first.installations
引发错误
PG::UndefinedColumn: ERROR: column installations.original_lead_type
does not exist LINE 1: ...WHERE "installations"."original_lead_id" = $1 AND
"installations"."original_lead_type" = $2
因此,它正在寻找属于特定引线类型的安装,但我不关心引线类型。
我能够通过替换Lead模型上的has_many语句来解决这个问题,如下所示:
has_many :originated_installations, inverse_of: :original_lead,
foreign_key: :original_lead_id, class_name: 'Installation'
所以,是的,我的问题已经解决了,我只想分享并知道是否还有其他一些我可以使用的选项。
答案 0 :(得分:0)
如下替换has_many语句解决了原始问题:
class Lead < ActiveRecord::Base
has_many :originated_installations, inverse_of: :original_lead,
foreign_key: :original_lead_id, class_name: 'Installation'
end