我想要運行這些命令:運行命令3
require 'fileutils'
FileUtils.rm_rf Dir.glob("#{Rails.root}/public/uploads/tmp/*")
如果驗證在我的模型失敗的回調:
我見過回調after_validation
。
我該如何檢查驗證是否正常,或者如果驗證與after_validation
回調驗證不正確(KO)?
我想要運行這些命令:運行命令3
require 'fileutils'
FileUtils.rm_rf Dir.glob("#{Rails.root}/public/uploads/tmp/*")
如果驗證在我的模型失敗的回調:
我見過回調after_validation
。
我該如何檢查驗證是否正常,或者如果驗證與after_validation
回調驗證不正確(KO)?
的解決方案檢查對我來說是:
after_validation :empty_tmp
protected
def empty_tmp
if self.errors.any?
require 'fileutils'
FileUtils.rm_rf Dir.glob("#{Rails.root}/public/uploads/tmp/*")
end
end
您可以
if your_model.errors.empty?
# run commands
end
class User < ActiveRecord::Base
after_validation :do_something_if_validation_fails, :unless => lambda { errors.empty? }
protected
def do_something_if_validation_fails
logger.info "Validation failed lets do something"
end
end
你會得到無限循環! – jdoe
這很遺憾,因爲它看起來不錯。 – Rob
你沒有看到這個問題,對吧?通過指定':unless =>:valid?',您將從驗證回調中觸發驗證回調。 – jdoe