하나의 필드가 기본 개체의 필드와 직접 관련이없는 레일 입력 양식이 있습니다. ActiveRecord 필드에 입력하기 전에 계산을해야합니다. 지금까지는 괜찮습니다. 저는 계산을 컨트롤러에 넣었습니다.폼에 레일 유효성 검사
내 문제는 계산이 실패 할 수 있으며이를 사용자에게보고하려는 것입니다. 나는 플래시 알림으로이를 수행하는 방법을 알고 있지만, 특정 양식 입력 필드에 오류를 연관시키지 않으며 레코드 유효성 검사에서 제공하는 오류와 일치하지 않습니다. 내가하고 싶은 것은 입력 필드가 실패한 양식과 그 이유입니다.
ActiveRecord 유효성 검사를 사용하는 모든 설명서는 있지만 너무 늦은 것입니다. ActiveRecord를 채울 데이터가 없기 때문에 ActiveRecord를 만들 수 없습니다. 유효하지 않은 더미 데이터로 채우는 경우에도 만들 수 없습니다. - 예! - 유효성 검사가 될 때까지 오류의 원인을 자세히 알지 못했습니다.)
컨트롤러에서 폼 유효성 검사 오류를 생성하는 레일즈의 방법은 무엇입니까 (ok, ok,하지만 나는 그것을 검증기로 바꾸기 전에 작동시키고 싶습니다). 아니면 내가 대신해야할까요?
편집 : 다음은 내가 수행하려고하는 것의 예입니다. 등록 번호 (번호판)로 식별되는 차량 수천 대를 다루는 차량 관리자를 상상해보십시오. 차량이 운전자에게 체크 아웃되면 수천 개의 항목이있는 드롭 다운 메뉴가 제공되지 않으므로 사용자는 등록 번호를 입력합니다. 컨트롤러가이를 확인 (또는 더 잘 모델을 검색하여 조회)하고 차량 기록과 일치 시키며 차량 기록 ID가 계산대에 입력됩니다. 사용자가 숫자를 잘못 입력하면 컨트롤러/모델 (아마)이 해당 차량에 대한 항목이 없음을 알 수 있습니다. 다른 유효성 검사 실패와 일치하는 방식으로 저장이 실패한 이유를 사용자에게 알려주고 싶습니다.
당신은 가상 속성을 사용할 수 있습니다 체크 아웃 할 수 있습니다. 양식에 추가하고 유효성 확인을 – Mandeep
@Mandeep이 올바른 생각을합니다. 이 논리는 실제로 컨트롤러에있는 것이 아니라 모델 자체에 있어야합니다. – engineersmnky