我无法设置user.fee_email = -1
,但我可以,即使我在模型中指定numericality
fee_email
应为正。
假设:
class User < ActiveRecord::Base
validates :fee_email, numericality: { greater_than_or_equal_to: 0 }
...
end
这不应该发生:
2.2.1 :002 > a = User.first
2.2.1 :003 > a.fee_email
=> #<BigDecimal:43cbbe0,'0.0',9(27)>
2.2.1 :004 > a.fee_email = -1
=> -1
2.2.1 :005 > a.fee_email
=> #<BigDecimal:43b5688,'-0.1E1',9(27)>
答案 0 :(得分:1)
尝试保存。 a.save
。它不会工作。
尝试将其保存在数据库中时验证工作。您可以为检索记录分配任何内容(这是副本),它不会有任何区别。尝试保存后,验证可能会失败,并且不会保存更改。
答案 1 :(得分:1)
由于您未调用验证,请致电a.valid?
或a.invalid?
或a.save
以调用验证并使用a.errors
检查错误消息。