我有以下型号设置:如何通过多态类型获取对象的所有实例?
class Sound < ActiveRecord::Base
has_many :tenders, :as => :tenderable
belongs_to :event
end
class Stage < ActiveRecord::Base
has_many :tenders, :as => :tenderable
belongs_to :event
end
class Tender < ActiveRecord::Base
attr_accessible :event_id, :user_id, :estimate, :tenderable_id, :tenderable_type
belongs_to :tenderable, :polymorphic => :true
end
class Event < ActiveRecord::Base
attr_accessible :name
has_one :stage
has_one :sound
accepts_nested_attributes_for :stage, :allow_destroy => true
accepts_nested_attributes_for :sound, :allow_destroy => true
end
每个事件的各种Tenderable的连接到它(如舞台,音响),我可以通过Event.find(ID).tenderables访问这些,但我需要确定哪些“机会”可用,而不管他们所附的事件如何。
目前,我没有对“机会”的模型,因为我试图让事情变得简单。
真的是我想要做的是一样的东西Tenderables.all将返回所有的“声音”,“阶段”和其他任何我定义为“tenderable”。
达到此目的的最佳方法是什么?
感谢;)
你想找到所有'Tenderables'有一个'Tender'或者那些可能得到一个'Tender'所有对象(因为这将只是所有'阶段,声音,...')。 – nathanvda
嗨Nathanvda - 我需要所有可能会招标的物件。 'tenderables'阶段,声音......列表可能会经常发生变化...... – significance