在多态关联中需要多对一的关系

时间:2014-02-07 07:17:46

标签: ruby-on-rails ruby activerecord polymorphic-associations

我有3个模特

class User < ActiveRecord::Base
    has_one :image, :as => :imageable, :dependent => :destroy
end

class Product < ActiveRecord::Base
    has_one :image, :as => :imageable, :dependent => :destroy
end

class Image < ActiveRecord::Base
    belongs_to :imageable, polymorphic: true
end

要求是为多个产品提供相同的图像。即许多产品都有一个图像。

p1, p2, p3 -> img1

如果没有额外的表格,有没有办法实现这一点。请帮忙。

1 个答案:

答案 0 :(得分:0)

这可能不是你想要的,但它会做你所要求的,可能是最简单的解决方案。

class User < ActiveRecord::Base
    belongs_to :image
end

class Product < ActiveRecord::Base
    belongs_to :image
end

class Image < ActiveRecord::Base
    has_many :users
    has_many :products

    def imageables
        return users + products
    end
end