The dirty tracking you were using here is unnecessary.  ActiveRecord adds `{field_name}_changed?` methods for all fields, which returns true if the field has changed since the model was last saved.  This serves the purpose here.