-Iには2種類のモデルがあります。Game
とTeam
すべてのゲームには2つのチームが含まれています。だからもう一つのモデル - TeamParticipate
がある。勝者と詳細なスコアとして、game_id、team_id、および追加のフィールドがあります。 は、私は1つのページに多くのゲームを表示したいので、私は、私はページ上のすべてのゲームに参加したすべての二つのコマンド見せたい、そして、@games = Game.where(some_query).includes(:team_participates)
を書く:私は上のすべてのチームのためにaditional選択クエリを与えるもう1つのレールN + 1
[email protected] do |game|
=game.date
-game.team_participates.each do |tp|
=tp.team.title
をページ。 3つのクエリによってその問題と負荷のページを解決する方法があります:
1) Select * from games where ...
2) Select * from team_participates where ...
3) Select * from teams where ...
あなたが団体の権利を正しく行えば、 'Game.includes(team_participates::teams).where(.....)'が行います。 – Emu
それは、ありがとう! Game.includes(team_participates::team).where(.....) 私は選択クエリが3つしかありません。 – user2572790
私は答えとしてそれを与えています、よろしいですか? – Emu