,
before_save: record_old_value
after_save: record_change
def record_old_value
@old_value = self.field
end
def record_change
if @old_value==self.field
create_record_in_history :old_value => @old_value, :new_value => self.field
end
end
The reason this didn't work was because we set self.field = new_value, so it is not available in before_save. But the rails have another Active-Record function, for example field_changed , which can be used directly both before_save and after_save. So i ended up with this solution
after_save :run_function
def run_function
@old_value = field_was
if @old_value==self.field
create_record_in_history :old_value => @old_value, :new_value => self.field
end
end
source
share