1

我不知道这是否可能,但这里有:

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 的多态关系获取了所有 Worm?

这似乎有点倒退,但无论如何我感谢您的帮助!如果需要任何澄清,请询问。

4

1 回答 1

1

(猜测上面我自己评论的答案)

你不能做你想做的事,没有 Rails 助手可以让你在单个关联中加入 to Wormfrom 。FruitBasket你可以有apple_wormsbanana_worms但我敢肯定你已经猜到了,这不是你想要的。

您需要做的是创建自己的方法来获取正确Worm的 s - 如下所示:

def worms
  Worm.where :id => apple_ids + banana_ids
end
于 2011-06-08T20:59:03.187 回答