【发布时间】:2014-11-20 02:27:26
【问题描述】:
我有一个带有标准和自定义验证的模型
自定义验证可以正常工作,但是...
当我在事务中保存并触发我的自定义验证时,保存失败但事务没有回滚。
当我在事务中保存并触发系统验证时,保存失败并且事务回滚。
我已阅读我可以检查使用保存爆炸然后触发异常以回滚事务但是我希望我的自定义验证与系统验证功能相同而不需要异常处理程序。
我的自定义验证码很简单:
class Family < ActiveRecord::Base
validates_presence_of :name
validate :ensure_no_twins
Private
def ensure_no_twins
errors.add(:name, "A sibling by this name already exists") if self.siblings.exists?(name: name) rescue true
end
end
【问题讨论】:
-
请将代码贴在您拨打
ensure_no_twins的地方。
标签: ruby-on-rails validation transactions rails-activerecord