私のbefore_update
メソッドは、特定のフィールドに変更があった場合にのみ別のオブジェクトを更新する必要があります。元のデータにアクセスできますか、それともデータベースからロードする必要がありますか? 例えば:
class Log < ActiveRecord::Base
attr_accessible :points, :student_id
belongs_to :student
before_update :update_points
private
def update_points
if points != original_log.points
student.points += points - original_log.points
student.save
end
end
end
original_log
それかオリジナルが必要ですpoints
。データベースにアクセスできない場合は、これをdef update_points
?の下に追加しても安全だと思います。
original_log = Log.find(id)