레일 2에서 레일즈 3 로의 마이그레이션에서 유효성 검사 오류가 ActiveRecord :: Error에서 ActiveModel :: Errors로 이동되었습니다. 검증 오류 2 레일에서
는 (다른 것들 사이) 유형과 메시지를 가지고 당신은 같은 것을 수행하여 유효성 검사 오류의 유형을 확인할 수 있습니다 다음ActiveModel :: 오류 확인 유형을 결정하는 방법
rescue ActiveRecord::RecordInvalid => e
e.record.errors.each do |attr, error|
if error.type == :foo
do_something
end
end
end
그러나 레일 3은 모든 것을 유효하지 않은 속성 W 메시지가 유실되었습니다. 그 결과 유형을 결정하는 유일한 방법은 오류 메시지 비교하는 것입니다 : (.? 예를 들어, 당신은 동일한 메시지를 사용하는 여러 검증 할 경우 어떻게)
rescue ActiveRecord::RecordInvalid => e
e.record.errors.each do |attr, error|
if error == "foobar"
do_something
end
end
end
전혀 적합하지 않습니다.
질문 :
는 유효성 검사 오류의 유형을 결정하는 레일 3.0에서 더 나은 방법이 있나요?
가능한 복제 [? 액티브에 실패한 검증 테스트 방법] (http://stackoverflow.com/questions/4119379/how-to-test-which- : 나는 원숭이 패치 결국 한 validation-failed-in-activerecord) – lulalala