1
안녕하세요. 내 모델에 상태 시스템이 있고 관찰자에 유효성 검사를 추가해야합니다. 시도했을 때레일 - 관측기에 유효성 검사 추가
def before_transition(record, transition)
to = transition.to.to_s
record.errors.add(:state, "Can't cancel") if to == 'cancel'
return false
end
내가 이것을 better_errors 및 binding_of 호출자 보석으로 디버깅 할 때 기록에 추가되는 오류를 확인할 수 있습니다.
>> record.errors.any?
=> true
그러나 레코드를 저장 중입니다.
before_update 메소드를 observer에 추가하면. before_transition 메서드를 실행 한 후
def before_update(record)
>> record.errors.any?
=> false
end
오류가 사라집니다.
옵저버의 특정 조건에 대한 업데이트 프로세스를 취소하는 방법은 무엇입니까?
추 신 : 유효성 검사기 메서드에서 전환을 얻을 수 없기 때문에 유효성 검사 메서드를 사용하여 모델에서 수행 할 수 없습니다.