ruby on rails-hasmany-through和多态关系



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

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_wormsbanana_worms,但我相信你已经猜到了,这不是你想要的。

你需要做的是创建你自己的方法来获得正确的Worm——类似于这样的东西:

def worms
  Worm.where :id => apple_ids + banana_ids
end

相关内容

  • 没有找到相关文章

最新更新