如何设置多态关联,其中两个不同的模型可以访问同一个项目
class Image < ActiveRecord::Base
belongs_to :imageable, polymorphic: true
end
class ModelA < ActiveRecord::Base
has_many :images, :as => :imageable
end
class ModelB < ActiveRecord::Base
has_many :images, :as => :imageable
end
我希望ModelA和ModelB访问相同的Image。因此,如果ModelA更新图像,ModelB图像也将更新。
更新
我正在尝试创建类似以下的内容
Event has many images
Person has many images
Person and Event reference the same image
When a image is added to a person from an Event the record has extra attributes.
这可以通过多态关联完成吗?
谢谢
答案 0 :(得分:1)
我认为你应该使用ModelA和ModelB之间的关系来做到这一点。因为图像不在ModelA中共享。例如:
ModelA.find(1).images
与
不同ModelA.find(2).images
修改强> 如果我理解正确,你不需要这里的多态关系。
您可以创建此关系
个人模特
has_many :event_images, :through => :person_event_images