実現したいこと
ユーザーが持つexercise(複数の動画URL)を詳細ページから一括削除を行いたい
前提
ユーザーを新規登録し、URLを選択して保存
詳細ページで保存されたURLが一覧となって表示される
このページで保存されているURLを一括削除を行いたい。
発生している問題・エラーメッセージ
The action 'show' could not be found for ExercisesController
該当のソースコード
users/show.html.erb
1<h1>ID:<%="#{@user.patient_id}"%>さんのマイページ</h1> 2 <%= link_to "logout", destroy_user_session_path, method: :delete, class: "nav-send" %> 3 <%= link_to "登録画面", exercises_path(current_user.id), class: "nav-send" %> 4 <%= link_to "削除", exercise_path(@exercises), method: :delete, class: "nav-send"%> 5 6 7<div class="UrlIndex"> 8 <div class="exercises"> 9 <% @exercises.each do |exercise| %> 10 <iframe src=<%= exercise.url1 %>></iframe> 11 <iframe src=<%= exercise.url2 %>></iframe> 12 <iframe src=<%= exercise.url3 %>></iframe> 13 <iframe src=<%= exercise.url4 %>></iframe> 14 <% end %> 15 16 </div> 17</div> 18 <div class="qrblock"> 19 <button id="getqrInfo" class="btn btn-default">QRコードを生成</button> 20 21 <div id="qrOutput"> 22 <div><img id="newImg"></div> 23 </div> 24 </div>
users.contoroller.rb
1class UsersController < ApplicationController 2 before_action :authenticate_user!, only: :show 3 def show 4 @user = User.find(params[:id]) 5 @exercises = @user.exercises 6 end 7 end
exercise_contoroller.rb
1class ExercisesController < ApplicationController 2 before_action :authenticate_user!, only: :index 3 4 def index 5 @exercise = Exercise.new 6 end 7 8 def create 9 @exercise = Exercise.new(exercise_params) 10 if @exercise.save 11 redirect_to user_path(current_user.id), notice: "Exercises created successfully" 12 else 13 redirect_to exercises_path(current_user.id) 14 end 15 end 16 17 def destroy 18 @user = User.find(params[:id]) 19 @exercises = @user.exercises 20 if @exercises.destroy 21 redirect_to exercises_path(current_user.id) 22 end 23 end 24 25 private 26 def exercise_params 27 params.require(:exercise).permit(:url1, :url2, :url3, :url4).merge(user_id: current_user.id) 28 end 29 30end
ruoute.rb
1Rails.application.routes.draw do 2 devise_for :users, controllers: { 3 registrations: 'users/registrations', 4 sessions: 'users/sessions' 5 } 6 unauthenticated do 7 as :user do 8 root :to => 'devise/registrations#new' 9 end 10 end 11 12 authenticated :user do 13 root :to => 'users#show', as: :authenticated_root 14 end 15 16 resources :exercises 17 resources :users 18end 19
試したこと
userコントローラー内にdestroyを書いてみたり、
show.html.erb
1<%= link_to "削除", exercise_path(@exercises), method: :delete, class: "nav-send"%>
ここのパスをuser_pathとしてみたりしましたが、もちろんエラー
次に何に修正を入れればいいのか打つ手がありません。