开发者

has_many through and polymorphic relationships

开发者 https://www.devze.com 2023-03-11 18:47 出处:网络
I don\'t know if this is possible, but here goes: FruitBasket has_many :apples has_many :bananas ######## What to put here to access Worm through its pest_holder relationship?

I don't know if this is possible, but here goes:

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

What is the开发者_StackOverflow社区 relationship I need to be able to call:

red_delicious = Apple.first
red_delicious.worms.whatever

And have it grab all of the Worm's through Apple's and Banana's polymorphic relationship with Worm?

It seems kind of backwards, but I appreciate the help anyway! If there's any clarification needed, just ask.


(Guessing the answer to my own comment above)

You can't do what you want to, there's no Rails helper to allow you to join through to Worm from FruitBasket in a single association. You can have apple_worms and banana_worms but I'm sure you guessed that already, and that that's not what you want.

What you'll need to do is to create your own method to get to the correct Worms - something like this:

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

精彩评论

暂无评论...
验证码 换一张
取 消