我目前正在学习 RoR,我想我一定是误解了什么。
我有一个 ActiveRecord 类调用 User,对 :name 和 :email 进行简单验证,例如 presence: true、length: { maximum: 15 } 等。我想我会在控制台中检查验证。我进入 Rails 控制台(开发环境),并创建一个名称太长的新实例,例如 user_instance = User.new(名称:“aaaaabbbbbcccccdddddd”,电子邮件:“”)。
验证不会抛出任何错误。当我尝试 user_instance.save 时,记录不会写入数据库,所以在那个阶段它显然工作正常。我做错了什么?
最佳答案
当您想在记录保存时引发异常,请使用 save!
而不是 save
(与 update
/update!
, create/create!
相同)。
使用save
,如果出现验证错误,您将不会引发异常,它只会返回false
。您还可以使用 user_instance.valid?
检查实例上是否存在错误,并使用 user_instance.errors
获取错误。
关于ruby - 为什么我不能在控制台中检查 ActiveRecord 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234313/