質問のタイトルが意味をなさない場合は申し訳ありませんが、私はまだ初心者であり、説明の仕方がわかりません。
これが正常に機能する現在のSQLクエリです
select teams.id as team_id, teams.team_name, players.type_name, sum(points) as points
from teams
inner join gameweeks on teams.id = gameweeks.team_id
inner join gameweeks_players on gameweeks.id = gameweeks_players.gameweek_id
inner join players on gameweeks_players.player_id = players.id
inner join player_fixtures on players.id = player_fixtures.player_id AND player_fixtures.gw_number = gameweeks.number
group by teams.id, players.type_name
レールでは、このクエリを次のように翻訳しました
Team.joins(gameweeks: :players).
joins("inner join player_fixtures on players.id = player_fixtures.player_id AND player_fixtures.gw_number = gameweeks.number").
group("teams.id, players.type_name").
select("teams.id, teams.team_name, players.type_name as type, sum(points) as points")
レールには、これら2つのモデルがあります。
class League < ActiveRecord::Base
belongs_to :user
has_many :league_teams
has_many :teams, :through => :league_teams
end
class Team < ActiveRecord::Base
has_many :gameweeks
has_many :league_teams
has_many :leagues, :through => :league_teams
end
リーグに関連付けられているチームのみにクエリを変更したい (どうにかしてそのリーグの ID を渡したい)
それを行う方法がわからないだけで、適切なキーワードでグーグルするための知識がありません...
正しい方向に向けてください。