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

(上記の私自身のコメントに対する答えを推測しています)

あなたがやりたいことをすることはできません.1つの関連付けに参加できるようにするRailsヘルパーはありませWormFruitBasket。あなたはapple_wormsandを持つことができますが、あなたはbanana_wormsすでにそれを推測していると確信しており、それはあなたが望むものではありません.

あなたがする必要があるのは、正しいWorms に到達するための独自のメソッドを作成することです - 次のようなものです:

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