answer inserts

This commit is contained in:
Mark Moser
2016-07-30 16:25:09 -05:00
parent 71786f3c6e
commit c9375937fa
11 changed files with 100 additions and 58 deletions

View File

@ -9,12 +9,25 @@ class CandidateController < ApplicationController
redirect_to :summary and return if qid.nil?
@question = current_candidate.fetch_question(qid)
@answer = Answer.new
end
def update_question
redirect_to :summary and return if params.key?(:update)
redirect_to :saved and return if params.key?(:save)
redirect_to :question
def update_answer
answer_ids = { question_id: answer_params[:question_id], candidate_id: current_candidate.to_i }
@answer = Answer.find_or_create_by!(answer_ids)
@answer.answer = answer_for_type
@answer.saved = answer_params[:save]
@answer.submitted = answer_params[:next]
if @answer.save
redirect_to :summary and return if params.key?(:update)
redirect_to :saved and return if params.key?(:save)
redirect_to :question
else
flash[:error] = [answer_params[:question_id]]
@question = current_candidate.fetch_question(qid)
render :question
end
end
def summary
@ -56,7 +69,18 @@ class CandidateController < ApplicationController
private
def question_params
params.permit(:save)
def answer_params
params.require(:answer).permit(
:question_id, :answer_id,
:save, :next, :summary,
:radio, :text, checkbox: [], live_coder: []
)
end
def answer_for_type
return answer_params[:radio] unless answer_params[:radio].nil?
return answer_params[:text] unless answer_params[:text].nil?
return answer_params[:checkbox] unless answer_params[:checkbox].nil?
return answer_params[:live_coder] unless answer_params[:live_coder].nil?
end
end