在我的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
已存在。
答案 0 :(得分:0)
从上下文中我不清楚你到底在做什么(也许第二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
...