Как я могу реорганизовать этот фрагмент, чтобы он минимизировал количество вызовов в базе данных?Рефакторинг рельсов звонки в базу данных
/Player.rb
def num_matchups
this_week_appearances = 0
this_week_appearances += Matchup.where(player_1: self.id).sum("pts_player_1")
this_week_appearances += Matchup.where(player_1: self.id).sum("pts_player_2")
this_week_appearances += Matchup.where(player_2: self.id).sum("pts_player_1")
this_week_appearances += Matchup.where(player_2: self.id).sum("pts_player_2")
end
Цель состоит в том, чтобы найти число раз, что игрок (в зависимости от того игрок это вызывается) был в Matchup, который ставится на голосование. Игрок мог быть в матче в поле Matchup.player_1
или Matchup.player_2
(это не имеет значения), и потому, что мне все равно, выиграли они или проиграли (просто количество выступлений), мне нужны очки от обоих игроков в совпадают.
Я думаю, это будет выглядеть примерно так, но я не знаю синтаксис, что он должен использовать:
this_week_appearances = Matchup.where(player_1: self.id OR player_2: self.id).sum("pts_player_1").sum("pts_player_2")
Может что-то подобное можно сделать?