Move action to create answers to AnswersController
It was confusing to have the action to create an answer in `QuestionsController#answer` while the action to destroy it was `AnswersController#destroy`.
This commit is contained in:
@@ -11,7 +11,7 @@
|
|||||||
"aria-pressed": true %>
|
"aria-pressed": true %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= button_to question_option.title,
|
<%= button_to question_option.title,
|
||||||
answer_question_path(question, answer: question_option.title),
|
question_answers_path(question, answer: question_option.title),
|
||||||
remote: true,
|
remote: true,
|
||||||
title: t("poll_questions.show.vote_answer", answer: question_option.title),
|
title: t("poll_questions.show.vote_answer", answer: question_option.title),
|
||||||
class: "button secondary hollow",
|
class: "button secondary hollow",
|
||||||
|
|||||||
@@ -2,7 +2,24 @@ class Polls::AnswersController < ApplicationController
|
|||||||
load_and_authorize_resource :question, class: "::Poll::Question"
|
load_and_authorize_resource :question, class: "::Poll::Question"
|
||||||
load_and_authorize_resource :answer, class: "::Poll::Answer",
|
load_and_authorize_resource :answer, class: "::Poll::Answer",
|
||||||
through: :question,
|
through: :question,
|
||||||
through_association: :answers
|
through_association: :answers,
|
||||||
|
only: :destroy
|
||||||
|
|
||||||
|
def create
|
||||||
|
authorize! :answer, @question
|
||||||
|
|
||||||
|
answer = @question.find_or_initialize_user_answer(current_user, params[:answer])
|
||||||
|
answer.save_and_record_voter_participation
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
format.html do
|
||||||
|
redirect_to request.referer
|
||||||
|
end
|
||||||
|
format.js do
|
||||||
|
render :show
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@answer.destroy_and_remove_voter_participation
|
@answer.destroy_and_remove_voter_participation
|
||||||
@@ -12,7 +29,7 @@ class Polls::AnswersController < ApplicationController
|
|||||||
redirect_to request.referer
|
redirect_to request.referer
|
||||||
end
|
end
|
||||||
format.js do
|
format.js do
|
||||||
render "polls/questions/options"
|
render :show
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
class Polls::QuestionsController < ApplicationController
|
|
||||||
load_and_authorize_resource :question, class: "Poll::Question"
|
|
||||||
|
|
||||||
def answer
|
|
||||||
answer = @question.find_or_initialize_user_answer(current_user, params[:answer])
|
|
||||||
answer.save_and_record_voter_participation
|
|
||||||
|
|
||||||
respond_to do |format|
|
|
||||||
format.html do
|
|
||||||
redirect_to request.referer
|
|
||||||
end
|
|
||||||
format.js do
|
|
||||||
render :options
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -5,8 +5,7 @@ resources :polls, only: [:show, :index] do
|
|||||||
end
|
end
|
||||||
|
|
||||||
resources :questions, controller: "polls/questions", shallow: true, only: [] do
|
resources :questions, controller: "polls/questions", shallow: true, only: [] do
|
||||||
post :answer, on: :member
|
resources :answers, controller: "polls/answers", only: [:create, :destroy], shallow: false
|
||||||
resources :answers, controller: "polls/answers", only: :destroy, shallow: false
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user