Module: ActiveRecordSurveyApi::Concerns::Controllers::Answers

Extended by:
ActiveSupport::Concern
Included in:
AnswersController, Concerns::Controllers::Answers
Defined in:
lib/active_record_survey_api/concerns/controllers/answers.rb

Instance Method Summary collapse

Instance Method Details

#all_answersObject



7
8
9
# File 'lib/active_record_survey_api/concerns/controllers/answers.rb', line 7

def all_answers
	Answer.all
end

#answer_by_id(id) ⇒ Object



11
12
13
# File 'lib/active_record_survey_api/concerns/controllers/answers.rb', line 11

def answer_by_id(id)
	Answer.find(id)
end

#answer_paramsObject



25
26
27
# File 'lib/active_record_survey_api/concerns/controllers/answers.rb', line 25

def answer_params
	json_params.permit(:type, answer: [:text, nodes: []])
end

#find_answerObject



43
44
45
# File 'lib/active_record_survey_api/concerns/controllers/answers.rb', line 43

def find_answer
	self.instance_variable_set "@answer", ActiveRecordSurvey::Node::Answer.find(params[:answer_id])
end

#find_questionObject



39
40
41
# File 'lib/active_record_survey_api/concerns/controllers/answers.rb', line 39

def find_question
	self.instance_variable_set "@question", ActiveRecordSurvey::Node::Question.find(params[:question_id])
end

#find_surveyObject



35
36
37
# File 'lib/active_record_survey_api/concerns/controllers/answers.rb', line 35

def find_survey
	self.instance_variable_set "@survey", ActiveRecordSurvey::Survey.find(params[:survey_id])
end

#json_paramsObject



21
22
23
# File 'lib/active_record_survey_api/concerns/controllers/answers.rb', line 21

def json_params
	ActionController::Parameters.new(JSON.parse(request.body.read))
end

#new_answer(params) ⇒ Object



15
16
17
18
19
# File 'lib/active_record_survey_api/concerns/controllers/answers.rb', line 15

def new_answer(params)
	klass = "::ActiveRecordSurvey::Node::Answer::#{(params[:type] || "answer").to_s.camelize}".constantize

	klass.new(params[:answer])
end