我不知道这是否可能,但这里是:
FruitBasket
has_many :apples
has_many :bananas
######## What to put here to access Worm through its pest_holder relationship?
Apple
has_many :worms, :as => :pest_holder
belongs_to :fruit_basket
Banana
has_many :worms, :as => :pest_holder
belongs_to :fruit_basket
Worm
belongs_to :pest_holder, :polymorphic => true
我需要能够调用的关系是什么:
red_delicious = Apple.first
red_delicious.worms.whatever
它是否通过苹果和香蕉与蠕虫的多态关系抓住了蠕虫的所有优势?
这看起来有点落后,但我还是很感激你的帮助!如果有任何需要澄清的地方,请询问。
(猜测上面我自己评论的答案)
你不能做你想做的事,没有Rails助手可以让你在一个关联中从FruitBasket
加入到Worm
。你可以有apple_worms
和banana_worms
,但我相信你已经猜到了,这不是你想要的。
你需要做的是创建你自己的方法来获得正确的Worm
——类似于这样的东西:
def worms
Worm.where :id => apple_ids + banana_ids
end