当模型已经属于其中一个模型时的多态关系
Polymorphic relationship when model already belongs to one of the models
我有 Area
和 ClickMap
。一个Area
有多个ClickMap
,一个ClickMap
属于一个区域。简单。
问题是每个 ClickMap
也有一个目标,但目标需要是多态的,因为目标可以是多个模型之一,包括 Area
。但这显然是一个问题,因为 Area
有很多 ClickMap
两次...
这是我目前得到的:
class Area < ActiveRecord::Base
has_many :click_maps, dependent: :destroy
has_many :click_maps, as: :targetable
end
class ClickMap < ActiveRecord::Base
belongs_to :area
belongs_to :targetable, polymorphic: true
end
感谢任何帮助。我现在可能只是愚蠢...
也许我需要插页式 Target
模型?
更新
我最后只是删除了 has_many :click_maps, as: :targetable
行。那是没有意义的。我只需要能够调用 click_map.targetable
并取回正确的对象。
包含 polymorphic association
之后,我认为您仍然不需要 has_many
直接关联 Area
和 ClickMap
模型。
我有 Area
和 ClickMap
。一个Area
有多个ClickMap
,一个ClickMap
属于一个区域。简单。
问题是每个 ClickMap
也有一个目标,但目标需要是多态的,因为目标可以是多个模型之一,包括 Area
。但这显然是一个问题,因为 Area
有很多 ClickMap
两次...
这是我目前得到的:
class Area < ActiveRecord::Base
has_many :click_maps, dependent: :destroy
has_many :click_maps, as: :targetable
end
class ClickMap < ActiveRecord::Base
belongs_to :area
belongs_to :targetable, polymorphic: true
end
感谢任何帮助。我现在可能只是愚蠢...
也许我需要插页式 Target
模型?
更新
我最后只是删除了 has_many :click_maps, as: :targetable
行。那是没有意义的。我只需要能够调用 click_map.targetable
并取回正确的对象。
包含 polymorphic association
之后,我认为您仍然不需要 has_many
直接关联 Area
和 ClickMap
模型。