2009-03-29 4 views
2

を検索"パーティー"。ActiveRecordの:私は名前のイベントを持っていないすべてのユーザーを見つけたいイベント</p> <p>belongs_toの</p> <p>ユーザー:ActiveRecordのを使用して、次のシナリオを考えると、単一のクエリを持つ非関連したプラス関連付けられたレコード

だから私は、次のことを試してみました:

User.all(:joins => :event, :conditions => ["events.name != ?", "party"]) 

しかし、唯一の「パーティー」イベントイベントを持っているそれらのユーザーを返しますが、ただではないだろうという。これは、イベントをまったく持っていないすべてのユーザーを返しません。なぜなら、joinsは自動的に結果を関連付けられたレコードに限定するからです。

私は2つのクエリを実行して結果を一緒に追加できますが、1つのクエリで非関連レコードをフェッチする方法と、条件に一致する関連レコードを追加する方法がありますか?

答えて

3

これはいかがですか?

User.all(
    :include => :event, 
    :conditions => ["users.event_id IS NULL OR events.name != ?", "party"]) 
+0

ありがとう、サラ。私は同じ条件を試していましたが、ジョインは動作しませんでした。私は、代わりにincludeを使うとは思わなかったばかげているような気がします。私は生きて学ぶ:-)。 –

関連する問題