diff --git a/app/controllers/admin/poll/questions/answers/videos_controller.rb b/app/controllers/admin/poll/questions/answers/videos_controller.rb index 1abbdb625..e4191e0dd 100644 --- a/app/controllers/admin/poll/questions/answers/videos_controller.rb +++ b/app/controllers/admin/poll/questions/answers/videos_controller.rb @@ -1,17 +1,14 @@ class Admin::Poll::Questions::Answers::VideosController < Admin::Poll::BaseController - before_action :load_answer, only: [:index, :new, :create] - before_action :load_video, only: [:edit, :update, :destroy] + load_resource :answer, class: "::Poll::Question::Answer" + load_resource class: "::Poll::Question::Answer::Video", through: :answer def index end def new - @video = ::Poll::Question::Answer::Video.new end def create - @video = ::Poll::Question::Answer::Video.new(video_params) - if @video.save redirect_to admin_answer_videos_path(@answer), notice: t("flash.actions.create.poll_question_answer_video") @@ -25,7 +22,7 @@ class Admin::Poll::Questions::Answers::VideosController < Admin::Poll::BaseContr def update if @video.update(video_params) - redirect_to admin_answer_videos_path(@video.answer), notice: t("flash.actions.save_changes.notice") + redirect_to admin_answer_videos_path(@answer), notice: t("flash.actions.save_changes.notice") else render :edit end @@ -34,7 +31,7 @@ class Admin::Poll::Questions::Answers::VideosController < Admin::Poll::BaseContr def destroy @video.destroy! notice = t("flash.actions.destroy.poll_question_answer_video") - redirect_to admin_answer_videos_path(@video.answer), notice: notice + redirect_to admin_answer_videos_path(@answer), notice: notice end private @@ -44,14 +41,6 @@ class Admin::Poll::Questions::Answers::VideosController < Admin::Poll::BaseContr end def allowed_params - [:title, :url, :answer_id] - end - - def load_answer - @answer = ::Poll::Question::Answer.find(params[:answer_id]) - end - - def load_video - @video = ::Poll::Question::Answer::Video.find(params[:id]) + [:title, :url] end end diff --git a/app/views/admin/poll/questions/answers/videos/_form.html.erb b/app/views/admin/poll/questions/answers/videos/_form.html.erb index 0381706e0..57d2757d5 100644 --- a/app/views/admin/poll/questions/answers/videos/_form.html.erb +++ b/app/views/admin/poll/questions/answers/videos/_form.html.erb @@ -2,8 +2,6 @@ <%= render "shared/errors", resource: @video %> - <%= f.hidden_field :answer_id, value: @video.answer_id || @answer.id %> -
diff --git a/app/views/admin/poll/questions/answers/videos/edit.html.erb b/app/views/admin/poll/questions/answers/videos/edit.html.erb index 31b59c2dd..9e6f06a13 100644 --- a/app/views/admin/poll/questions/answers/videos/edit.html.erb +++ b/app/views/admin/poll/questions/answers/videos/edit.html.erb @@ -5,5 +5,5 @@
- <%= render "form", form_url: admin_video_path(@video) %> + <%= render "form", form_url: admin_answer_video_path(@answer, @video) %>
diff --git a/app/views/admin/poll/questions/answers/videos/index.html.erb b/app/views/admin/poll/questions/answers/videos/index.html.erb index cedfe1b4d..bd436d88a 100644 --- a/app/views/admin/poll/questions/answers/videos/index.html.erb +++ b/app/views/admin/poll/questions/answers/videos/index.html.erb @@ -7,7 +7,7 @@ <%= link_to t("admin.answers.videos.index.add_video"), - new_admin_answer_video_path, + new_admin_answer_video_path(@answer), class: "button success float-right" %>
@@ -22,7 +22,7 @@ - <% @answer.videos.each do |video| %> + <% @videos.each do |video| %> <%= video.title %> <%= link_to video.url, video.url %> diff --git a/app/views/admin/poll/questions/answers/videos/new.html.erb b/app/views/admin/poll/questions/answers/videos/new.html.erb index 564817e3f..9552916ea 100644 --- a/app/views/admin/poll/questions/answers/videos/new.html.erb +++ b/app/views/admin/poll/questions/answers/videos/new.html.erb @@ -5,5 +5,5 @@
- <%= render "form", form_url: admin_answer_videos_path %> + <%= render "form", form_url: admin_answer_videos_path(@answer) %>
diff --git a/config/routes/admin.rb b/config/routes/admin.rb index f3471c58c..84d3e6b68 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -172,7 +172,7 @@ namespace :admin do resources :answers, except: [:index, :show, :destroy], controller: "questions/answers", shallow: false resources :answers, only: [], controller: "questions/answers" do resources :images, controller: "questions/answers/images" - resources :videos, controller: "questions/answers/videos" + resources :videos, controller: "questions/answers/videos", shallow: false resources :documents, only: [:index, :create], controller: "questions/answers/documents" end post "/answers/order_answers", to: "questions/answers#order_answers" @@ -328,5 +328,5 @@ resolve "Poll::Question::Answer" do |answer, options| end resolve "Poll::Question::Answer::Video" do |video, options| - [:video, options.merge(id: video)] + [:answer, :video, options.merge(answer_id: video.answer, id: video)] end diff --git a/spec/routing/polymorphic_routes_spec.rb b/spec/routing/polymorphic_routes_spec.rb index 814e67b01..5ff9bef09 100644 --- a/spec/routing/polymorphic_routes_spec.rb +++ b/spec/routing/polymorphic_routes_spec.rb @@ -97,7 +97,7 @@ describe "Polymorphic routes" do it "routes poll answer videos" do video = create(:poll_answer_video) - expect(admin_polymorphic_path(video)).to eq admin_video_path(video) + expect(admin_polymorphic_path(video)).to eq admin_answer_video_path(video.answer, video) end it "routes milestones for resources with no hierarchy" do diff --git a/spec/system/admin/poll/questions/answers/videos/videos_spec.rb b/spec/system/admin/poll/questions/answers/videos/videos_spec.rb index 1488b4a73..8735e2529 100644 --- a/spec/system/admin/poll/questions/answers/videos/videos_spec.rb +++ b/spec/system/admin/poll/questions/answers/videos/videos_spec.rb @@ -26,7 +26,7 @@ describe "Videos", :admin do scenario "Update" do video = create(:poll_answer_video, answer: answer) - visit edit_admin_video_path(video) + visit edit_admin_answer_video_path(answer, video) fill_in "Title", with: title fill_in "External video", with: url