如何重构此代码段以最大限度地减少对数据库的调用次数?
/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.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")
可以做这样的事情吗?