[ruby-on-rails] Rails에서 유효성 검사 오류 외에 .save ()가 실패한 원인을 어떻게 알 수 있습니까?

나는 반환되는 액티브 모델이 true에서 valid?(그리고 .errors가 비어을), 그러나 반환 false에서 save(). 모델 인스턴스가 유효한 경우 저장 실패의 원인을 어떻게 알 수 있습니까?



답변

모든 콜백을 확인하십시오.

나는 내가 가지고 있던 이와 같은 문제가 있었고 모델을 많이 변경 한 후 실패한 “after_validate”메소드가있었습니다. 모델은 유효했지만 “after_validate”는 false를 반환하고 있었기 때문에 사용 model.valid하면 true라고 말했지만 저장하면 유효성 검사 오류가 발생했습니다 (after_validate 콜백에서 전달됨). 이상 했어요.

응용 프로그램 추적을 살펴보면 예외를 발생시키는 코드 줄을 볼 수 있습니다.


답변

뱅 버전 save!(끝에 느낌표가 있음)을 사용하고 결과 오류를 검사 해보십시오 .


답변

경우 @user.save반환 (예를 들어) false, 다음 그냥이 모든 오류를 얻을 실행

@user.errors.full_messages


답변

예, 모든 before_ * 콜백에서 true를 반환했는지 확인 하여이 문제를 해결 한 다음 작동을 시작합니다. 🙂


답변

내가 가진 문제는 모델에 유효성 검사를 추가하는 것을 잊었다는 것입니다.

class ContactGroup < ActiveRecord::Base
  validates_presence_of :name
end


답변