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

Pictureモデルのみを指定して可能なすべての: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 に答える