0

私の Rails コールバックには、次のようなものがあります。

private
def update_points
  if user_id_changed?
    user_was = User.find(user_id_was)
    user_was.points -= points_was
    user_was.save
    user.points += points
    user.save
  end
end

それはこれを行う適切な方法user_wasですか?私は当初、存在user_wasするため、すでに定義されている(またはその場で定義できる)と想定してuser_id_wasいました。

4

1 に答える 1

0

文脈からは、あなたが何をしているのか正確にはわかりません(おそらく2番目pointsはそうあるべきpoints_wasですか?)。あなたが尋ねる人に応じて、そしてより少ない行で、わずかに改善された明確さのために:

...
  user_was = User.find(user_id_was)
  user_was.update_column :points, user_was.points - points_was
  user.update_column     :points, user.points     + points
...
于 2013-09-24T06:47:01.843 に答える