custom error validations
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user