[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