結合テーブルに存在しないすべてのレコードのリストを取得しようとしています。結合レコードが存在しないアクティブレコード
モデルはUser、Game、MarkedGameで、ユーザーはゲームをプレイしたとマークすることができます。それは、多くの関係に多くのです:
User > MarkedGame < Game
私ははユーザーによってマークされていないたことを、すべてのゲームのリストで欲しいです。
私は私は2つの別々のクエリを行い、それらを引くことができることを知っている:
Game.all - current_user.games
しかし、私は、これは配列ではなく、Active Recordの関係オブジェクトで私を残していることが好きではありません。さらに、それを実行するより実行可能な方法があるように思えます。
これを処理するActive Recordの方法がない場合、おそらくSQLの方法はありますか?私の生のSQLは特に強くないので、それについての助けに感謝します。
ありがとうございました。
パーフェクト!ありがとうございました。 これは基本的にゲームIDがゲームIDのサブクエリにないことを示していますか? –
はい、それは1つのクエリだけなので、データベースに正しいインデックスがある場合はかなり高速です。 – Iceman
すごく、ありがとう。 potashinによるもう1つの答えも完璧に機能しますが、どちらがより良い解決策であるかについての意見はありますか? –