7

我有一个像这样的多态关联(改编自guides.rubyonrails.com):

class Picture < ActiveRecord::Base
  belongs_to :imageable, :polymorphic => true
end

class Employee < ActiveRecord::Base
  has_many :pictures, :as => :imageable
end

class Product < ActiveRecord::Base
  has_many :pictures, :as => :imageable

  has_many :employees
end

有没有办法获得所有可能的 :imageable_types仅给定图片模型

例如,要在 Product 模型中获取 has_many :quotes 类,您可以:

Product.reflect_on_association(:employees).klass 

得到:# => 员工

现在我想做类似的事情:

Picture.reflect_on_association(:imageable).klass 

这显然会引发异常,但我想得到类似:# => [Employee, Product]

有没有办法做到这一点?(没有尝试所有模型来查看它们是否包含 has_many :pictures)

4

1 回答 1

4

如果不查看所有模型,我找不到这样做的方法,所以我只是调整了这个解决方案:https ://stackoverflow.com/a/2315469/1440599

于 2013-01-16T14:45:20.287 回答