Допустим, у вас есть пользователь с атрибутом возраста, который не может быть отрицательным.
class User < ActiveRecord::Base
validates :age, numericality: { greater_than: 0 }
end
Если вы попытаетесь обновить атрибуты до отрицательного числа, проверка не удастся, но экземпляр по-прежнему будет иметь отрицательное значение возраста.
#<User id: 1, age: 5, created_at: "2014-11-08 20:14:12", updated_at: "2014-11-08 20:14:12">
user.update_attributes!(:age => -5)
#<User id: 1, age: -5, created_at: "2014-11-08 20:14:12", updated_at: "2014-11-08 20:14:12">
Помимо перехвата ActiveRecord :: RecordInvalid и самостоятельного сброса значения - это способ сбросить экземпляр, если его проверки не пройдут?
Благодарность!