您好我正在尝试为模型编写自定义验证,如果验证失败,则不允许保存模型。
这是我到目前为止所做的:
validate :valid_est_time
private
def valid_est_time
if !self.est_time.is_a? Integer || self.est_time >= 0
self.errors.add("Invalid Response Estimated Time.")
end
end
验证通过不保存模型来工作,但它也会抛出错误(我不希望它做)
NoMethodError in Jobs#index
Showing /Users/squitorio/Documents/Project/Dispatcher/assist/app/views/jobs/_index_active.html.erb where line #19 raised:
undefined method `minutes' for nil:NilClass
我只是希望它不保存模型,然后继续
答案 0 :(得分:0)
您可以使用before_save回调。如果从名为before_save的任何方法返回false,则取消所有后续回调。这将阻止您的模型保存。看看这个http://guides.rubyonrails.org/active_record_callbacks.html
如果您仍想使用Rails验证的其他功能,请在此处查看自定义验证http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations