2017-11-20 10 views
1

-Iには2種類のモデルがあります。GameTeam すべてのゲームには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 ... 
+1

あなたが団体の権利を正しく行えば、 'Game.includes(team_participates::teams).where(.....)'が行います。 – Emu

+0

それは、ありがとう! Game.includes(team_participates::team).where(.....) 私は選択クエリが3つしかありません。 – user2572790

+0

私は答えとしてそれを与えています、よろしいですか? – Emu

答えて

1

Game.includes(team_participates: :team).where(.....)あなたが右の関連付けを行っていた場合の対処します。

+1

:チームの代わりに:チーム – user2572790

関連する問題