【发布时间】:2014-11-08 20:21:38
【问题描述】:
假设您的用户的年龄属性不能为负数
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 并自己重置值之外,如果验证失败,他们还可以重置实例?
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby validation rails-activerecord