2

子供がいるものを見つけたいです。与えられた:

class Foo < ActiveRecord::Base
   has_many :bars
   has_many :bazes

   scope :is_a_parent ...what goes here?...

バーやベイズがあるFoosを取得したい。確かに、生の SQL ではすべてのことが可能exists (select 1 from bars ...) or exists (select 1 from bazes ...)ですが、yuk.

確かにany?arelorメソッドと組み合わせて使用​​する方法はありますか? SQLに頼らずにそれを行う他の方法はありますか?

4

2 に答える 2

0
class Foo < ActiveRecord::Base
  has_many :bars
  has_many :bazes    

  scope :is_a_parent, (joins(:bars) or joins(:bazes)).uniq

バーやベイズを持っているすべてのフーズをあなたに与えるでしょう

ところで、通常、「is_」で始まる関数は「?」で終わり、true/false のみを返す必要があります。

于 2012-06-09T04:53:23.560 に答える
0

これは役に立ちますか?その前の答えはあなたの逆(バーもベイズもないFoos)を探していますが、ロジックを逆にすることができるはずです。

于 2012-06-08T20:38:15.080 に答える