A method that calculates win streaks
You can use Array#min and Array#max to calculate the win/lose streak;
You don't need to use self on getters;
And you can use user.update instead of assigning and calling .save;
I would also rename the win_streak column to streak;




def adjust_streak
  streak = case result
           when 'Win'  then [user.streak, 0].max + 1
           when 'Loss' then [user.streak, 0].min - 1
           end

  user.update streak: streak
end