我不知道这是否可行,但这里有:
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
让它通过Apple和Banana与Worm的多态关系获取所有蠕虫?
看起来有些倒退,但无论如何我还是很感激!如果需要澄清,请询问。
答案 0 :(得分:1)
(猜测上面我自己评论的答案)
你不能做你想做的事情,没有Rails助手允许你在一个关联中从Worm
加入FruitBasket
。你可以拥有apple_worms
和banana_worms
,但我确定你已经猜到了,那不是你想要的。
您需要做的是创建自己的方法以获得正确的Worm
- 类似这样的内容:
def worms
Worm.where :id => apple_ids + banana_ids
end