그래서이 버그를 해결하기 위해 머리카락을 잡아 당겼습니다. 나는 항상 내가 건너 뛰는 내 액티브 검증 될 것이라고my_object.save (false)가 실제로 활성 레코드 유효성 검사를 건너 뛰지 않습니다.
@my_model.save(false)
를 호출 할 때 인상을 받고 있었다. 이것은 부분적으로 사실입니다. 내 개체가 데이터베이스에 저장하고 있습니다 내 주소록 유효 확인입니다. 내 검증 중 하나가 유효성 검사 프로세스 중에 어린이 모델 중 하나를 수정하기 때문에 문제가 발생합니다 (24 시간 위치 예약 응용 프로그램이므로 점심 식사가 저장 될 때 저장하는 날과 그 다음날에 체크합니다). 사용자가 야간 근무를 위해 "2am"을 의미하지 않았는지 확인하십시오.
내 질문 : 실제 유효성 검사를 건너 뛰고 곧바로 데이터베이스로 이동하는 방법이 있습니까? 정상적인 ActiveRecord 동작입니까? 아니면 유효성 검사를 다시 할 필요가 있습니까?
를 사용해서는 안 이는 유효성 검사에서 모델을 수정하기 때문에 문제가됩니다. 데이터를 위생 처리하는 데 유효성 검사 이외의 것을 사용합니다. – bhollis
그게 전부입니다! 나는 그것이 나의 궁극적 인 대답이라고 추측하고있다. 그러나 나는 내가 다른 것을 찾을 수 있는지보기 위해 나의 행운을 시험 할 것이라고 생각했다. – BushyMark
유효성 검사를 사용하여 비즈니스 개체를 후 처리하는 것은 분명히 냄새입니다. 유효성 검사는 데이터를 검사하는 것이지 수정하는 것이 아닙니다. 수정하기 위해서, Before/After-Save, Before/After-Create 등등과 같은 다양한 ActiveRecord 라이프 사이클 후크를 사용하십시오. – Matthias