ast*_*nic 19 validation logging activerecord ruby-on-rails
我如何记录模型的文件验证错误?
我想要一个自定义日志文件,当我在我的应用程序的开发模式下玩时,会记录验证错误.
实现这一目标的最佳选择是什么?
猴子修补保存方法是个好主意吗?或者你有更好的方法来做到这一点?
Len*_*art 27
取决于你想做什么,但取决于这样的事情:
# model
after_validation :log_errors, :if => Proc.new {|m| m.errors}
def log_errors
Rails.logger.debug self.errors.full_messages.join("\n")
end
Run Code Online (Sandbox Code Playgroud)
我结合了Lenart和Altonymous的建议。因此,我们对此表示关注(因为Rails 4)
# app/models/concerns/log_validation_errors.rb
module LogValidationErrors
extend ActiveSupport::Concern
included do
after_validation :log_errors, if: proc { |m| m.errors }
end
def log_errors
Rails.logger.debug "Validation failed!\n" + errors.full_messages.map { |i| " - #{i}" }.join("\n")
end
end
Run Code Online (Sandbox Code Playgroud)
并更改我们的模型以包含它
# app/models/my_model.rb
class MyModel < ApplicationRecord
include LogValidationErrors
# ...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6208 次 |
| 最近记录: |