어떻게 파일의 유효성 검사 오류에 로그 할 수 있습니까?레일스 로그 모델 오류가 발생했을 때 저장 실패
내 응용 프로그램과 함께 개발 모드에서 재생할 때 유효성 검사 오류가 기록되는 사용자 지정 로그 파일이 필요합니다.
이를 달성하는 가장 좋은 방법은 무엇입니까?
저장 방법의 원숭이 패치가 좋은 생각입니까? 아니면 할 수있는 좋은 방법이 있습니까?
어떻게 파일의 유효성 검사 오류에 로그 할 수 있습니까?레일스 로그 모델 오류가 발생했을 때 저장 실패
내 응용 프로그램과 함께 개발 모드에서 재생할 때 유효성 검사 오류가 기록되는 사용자 지정 로그 파일이 필요합니다.
이를 달성하는 가장 좋은 방법은 무엇입니까?
저장 방법의 원숭이 패치가 좋은 생각입니까? 아니면 할 수있는 좋은 방법이 있습니까?
나는 before_save 콜백을 작성하고 유효한 경우 오류를 기록하겠습니까? false를 반환합니다.
은 당신이 원하는 무엇에 따라 달라집니다하지만 이런 일에 대해 어떻게 :
# model
after_validation :log_errors, :if => Proc.new {|m| m.errors}
def log_errors
Rails.logger.debug self.errors.full_messages.join("\n")
end
내가 아는이 오래 ...하지만 다른 사람을 위해. 내 모델에 포함 된 모듈을 만들었습니다.
# validation_logger.rb
module ValidationLogger
def self.included(base)
base.send :include, InstanceMethods
base.after_validation :log_errors, if: ->(m) { m.errors.present? }
end
module InstanceMethods
def log_errors
Rails.logger.warn "#{self.class.name} #{self.id || '(new)'} is invalid: #{self.errors.full_messages.inspect}"
end
end
end
나는 Lenart 및 Altonymous 제안을 모두 결합했다. 그래서 우리는 우리의 모델이 대단한 그것을
# app/models/my_model.rb
class MyModel < ApplicationRecord
include LogValidationErrors
# ...
end
이 많은 도움이 될 것입니다 .. +1 –
를 포함
(레일 4 이후) 우려을 변경! 고맙습니다! –