일부 사용자 정의 유효성 검사를 실행하기 위해 제출 버튼 link_to를 만들 수있는 방법이 있습니까?제출 버튼을 누른 후 사용자 정의 유효성 확인
특정 필드의 존재 여부를 확인하는 유효성 검사를 작성하는 데 도움이 필요하며 또한 중첩 된 양식 배열에 4 개 이상의 항목이 있는지 확인해야합니다. Im은 중첩 된 서식과 프로젝트에 보석 고치를 사용하여 사용자가 신청서에 첨부 된 질문이 4 개 이상 있어야합니다.
class App < ActiveRecord::Base
belongs_to :user
has_many :questions, :dependent => :destroy
end
class Question < ActiveRecord::Base
belongs_to :app
end
다단 제어 : 사용자가 생성되면 다단계 질문 양식이 내장되어
class UserStepsController < ApplicationController
include Wicked::Wizard
steps :personal, :school, :grades, :extra_activity, :paragraph, :submit
def show
@user = User.find(current_user)
case step
when :school, :grades, :extra_activity, :paragraph, :submit
@question = Question.find(current_user)
end
render_wizard
end
def update
@user = User.find(current_user)
@user.update_attributes(user_params)
case step
when :school, :grades, :extra_activity, :paragraph, :submit
@question = Question.find(current_user)
@question.update_attributes(question_params)
end
render_wizard @user
end
을 다음과 같이
내 단체입니다.
예를 들어 사악한 두 번째 페이지에서 고등학교 이름 validates :highschool, :presence => true
의 존재를 확인하려고하지만 여전히 채점 된 고등학교없이 마지막 제출 페이지에서 양식을 제출할 수 있습니다.
해결책 :
내가 문자열입니다 "단계"라는 사용자의 마이그레이션을 만들었습니다.
그때 사용자 모델에 다음 코드를 추가합니다
하나의 다중 페이지 형태로 내 여러 모델을 회전 처리 내 user_steps 컨트롤러에서 다음class App < ActiveRecord::Base
validate :minimum_number_of_questions_required, if: "step == 'extra_activity'"
private
def minimum_number_of_questions_required
if questions.count < 4
errors[:base] << "You must have at least 4 questions attached."
end
end
end
, 나는 내 업데이트 방법에 다음과 같은 추가 :
case step
when :extra_activity
@user.step = step.to_s
end
영어로 볼 때, 레일스는 사용자가 양식의 어느 단계에 따라 사용자를 추적하는지 알 수 있습니다. 단계에 따라 양식 단계에 대한 유효성 검사를 실행할 수 있습니다.
이것은 extra_activity 단계에서 최소 4 개의 질문 만 필요하지만 유효성 검사가 허용하지 않기 때문에 이전 단계를 지나칠 수는 없다는 점에서 유용합니다. 우리는 같은 모델로 작업하고 있다는 것을 기억하십시오. 사용
보석 : (단순 중첩 된 형태의) 코쿤과 사악한 이러한 검증은 항상 적용해야하는 경우
이러한 검증은 항상 시행되어야합니까? 아니면이 특정 양식이 제출되었을 때만입니까? –
@ArtinBoghosian이 양식을 제출 한 후 – Dileet