私はモデルUser、League、およびTeamを持っています。ユーザーにはhas_manyリーグとhas_manyチームがあり、リーグhas_manyチームとhas_manyユーザーがあり、チームはリーグに属し、ユーザーに所属します。Rails Postgres: "モデルの三角形"で対応するモデルを見つけるためのクエリ
私がしたいのは、そのユーザーに属するすべてのリーグとチームを見つけることですが、各チームが属するチームとペアになるようにペアを組むことです。理想的には、可能な限り少ない数のクエリでこれを実行したいと思います。ペアをサイドバーに行として表示するため、ペア設定も重要です。
def get_user_leagues_and_teams(user)
@leagues_teams = Hash.new
if (!user.teams.nil?)
@teams = user.teams.all
end
#Creates hash of leagues and teams (assuming one to one)
@teams.each do |team|
league = team.league
@leagues_teams[league] = team
end
@leagues_teams
end
上記作品:
は、ここで(作品)私の現在の試みです。しかし、私はそれが非常に効率的だとは思わない。すべてのユーザーチームを調べ、各チームのリーグを1つずつ見つけて、各ペアをハッシュに格納します。多くのリーグ/チームを持つユーザーにとっては、これはデータベース呼び出しが非常に多くなることになります。さらに、リーグ/チーム(ゲーム、取引など)と一致させる必要があるユーザーと他のモデルを関連付ける場合、これはうまく拡張されません。
もっと良い質問がありますか?
ありがとうございます!
パーフェクト。ありがとう!! 1 –