보기에서 변수를 모델로 전달하여 뷰에서 전송할 필드의 유효성을 조건부로 확인하려고하므로 확인할 필드 집합을 알 수 있습니다.모델에서보기 및 인스턴스로 변수 선언하기
모델은 다음과 같습니다
validates_presence_of :first_name, :last_name, :if => :registration_step?
validates_numericality_of :primary_phone, :if => :contact_step?
def registration_step?
@step == :register
end
def contact_step?
@step == :contact
end
나는 모든 것이 제대로 작동하기 위해서는 내보기에 배치해야 모르겠어요. 내가
<% @step = :register %>
및
<% @step = :contact %>
뿐만 아니라 다른 조합 (:. 단계, 또한 '등록'과 '접촉'로 @step 나는 그냥 문법의 문제 모르거나 모델에서 한 가지만 더 잃어 버렸지 만 알아낼 수는 없습니다. "
'attr_accessor : step'을 내 모델에 추가하면 컨트롤러에 제대로 설정되어있는 것입니다. step ('register')은 나를 위해 오류를 던집니다. 그리고 @step = 'register'는 에러를 던지지 않지만, 'def registration_step? @step == : register end '모델에 있습니다. – Simon
귀하의 의견에 답장하여 답변을 업데이트했습니다. 아래를 참조하십시오. – theIV
정말 고마워요! 나는 당신의 솔루션을 작동시키지 만 나의 궁극적 인 문제는 해결하지 못할 것이다. 나는 다단계 입력 양식을 만들고 있는데, 각 후속 단계/페이지/양식은 데이터베이스의 레코드를 업데이트하고 컨트롤러에서 동일한 작성/편집 방법을 사용합니다. 유효성 검사를 조건부화해야하는 이유는 각보기에서 유효성을 검사 할 양식 필드가 몇 개 밖에 없기 때문입니다. 각 단계에서 표시되지 않는 모든 필드에 대한 유효성 검사가 실패하므로 유효성 검사를 조건부로 지정해야합니다. 솔루션은 작동하지만 폼을 저장할 때마다 동일한 create 메서드가 호출되기 때문에 step 특성을 다시 정의 할 수 없습니다. – Simon