custom error validations

This commit is contained in:
Mark Moser
2016-08-01 09:50:01 -05:00
parent dfd582d251
commit 95eec915c4
11 changed files with 79 additions and 24 deletions

View File

@ -13,8 +13,7 @@ class CandidateController < ApplicationController
end
def question
@status = QuizStatus.new(current_candidate)
qid = @status.current_question_id
qid = prep_status.current_question_id
redirect_to :summary and return if qid.nil?
@ -29,9 +28,8 @@ class CandidateController < ApplicationController
def summary
@quiz = current_candidate.my_quiz
@status = QuizStatus.new(current_candidate)
redirect_to :question and return unless @status.current_question_id.nil?
redirect_to :question and return unless prep_status.current_question_id.nil?
end
def update_text
@ -39,7 +37,7 @@ class CandidateController < ApplicationController
@answer.update(answer: answer_params[:text],
saved: answer_params[:save],
submitted: answer_params[:next])
validate_answer
route_answer
end
def update_radio
@ -47,7 +45,7 @@ class CandidateController < ApplicationController
@answer.update(answer: answer_params[:radio],
saved: answer_params[:save],
submitted: answer_params[:next])
validate_answer
route_answer
end
def update_checkbox
@ -55,7 +53,7 @@ class CandidateController < ApplicationController
@answer.update(answer: answer_params[:checkbox],
saved: answer_params[:save],
submitted: answer_params[:next])
validate_answer
route_answer
end
def update_live_code
@ -63,7 +61,7 @@ class CandidateController < ApplicationController
@answer.update(answer: answer_params[:live_code],
saved: answer_params[:save],
submitted: answer_params[:next])
validate_answer
route_answer
end
# TODO
@ -86,6 +84,10 @@ class CandidateController < ApplicationController
@question = current_candidate.fetch_question(qid)
end
def prep_status
@status ||= QuizStatus.new(current_candidate)
end
def answer_params
params.require(:answer).permit(
:question_id, :answer_id,
@ -100,10 +102,11 @@ class CandidateController < ApplicationController
answer
end
def validate_answer
def route_answer
if @answer.errors.present?
flash[:error] = [answer_params[:question_id]]
prep_status
prep_question answer_params[:question_id]
flash[:answer_error] = answer_params[:question_id].to_i
render :question
else
# TODO: change params.key? to submit = save/next/summary