ruby on rails - How to restrict FROM in SQL -
sorry if question's title doesn't mean anything, i'm still beginner , don't know how explain it.
here's current sql query works fine
select teams.id team_id, teams.team_name, players.type_name, sum(points) points 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 , player_fixtures.gw_number = gameweeks.number group teams.id, players.type_name in rails, translated query
team.joins(gameweeks: :players). joins("inner join player_fixtures on players.id = player_fixtures.player_id , player_fixtures.gw_number = gameweeks.number"). group("teams.id, players.type_name"). select("teams.id, teams.team_name, players.type_name type, sum(points) points") in rails, have these 2 models.
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 i modify query teams associated league (i'd pass id of league somehow)
i don't know how , i'm missing knowledge google right keywords...
could point me in right direction please?
this guide should able point right direction: http://guides.rubyonrails.org/active_record_querying.html#conditions
i not able test if works, try this:
league.team.select("teams.id, teams.team_name, players.type_name type, sum(points) points") .joins(gameweeks: :players) .joins("inner join player_fixtures on players.id = player_fixtures.player_id , player_fixtures.gw_number = gameweeks.number") .where("league.id = ?", leagueid) .group("teams.id, players.type_name") edit: merged @gregates answer question's comments mine.
Comments
Post a Comment