前提・実現したいこと
投稿したコメントを削除しようと削除ボタンを押すとRouting Errorがでてしまいます。
発生している問題・エラーメッセージ
Routing Error No route matches [DELETE] "/books/1/book_comments.1"
該当のソースコード
controller
1class BookCommentsController < ApplicationController 2 before_action :authenticate_user! 3 4before_action :authenticate_user! 5 6 def create 7 @book = Book.find(params[:book_id]) 8 @book_comment = BookComment.new(book_comment_params) 9 @book_comment.book_id = @book.id 10 @book_comment.user_id = current_user.id 11 if @book_comment.save 12 redirect_to book_path(@book.id) 13 else 14 render 'books/show' 15 end 16 end 17 18 def destroy 19 @book = Book.find(params[:book_id]) 20 book_comment = @book.book_comments.find(params[:id]) 21 book_comment.destroy 22 redirect_to request.referer 23 end 24 25 private 26 def book_comment_params 27 params.require(:book_comment).permit(:comment) 28 end 29end
html
1<table> 2 <% @book.book_comments.each do |book_comment| %> 3 <% book_comment_user = book_comment.user %> 4 <tr> 5 <td> 6 <%= link_to user_path(book_comment_user), class: "user_#{book_comment_user.id}" do %> 7 <%= attachment_image_tag book_comment_user, :profile_image, :fill, 50, 50, fallback: "no_image.jpg", size: "50x50" %><br> 8 <%= book_comment_user.name %> 9 <% end %> 10 </td> 11 <td><%= book_comment.comment %></td> 12 <% if current_user == book_comment_user %> 13 <td><%= link_to 'Destroy', book_book_comment_path(book_comment.book_id, book_comment.id), class: 'btn-sm btn-danger', method: :delete %></td> 14 </tr> 15 <% end %> 16</table> 17<%= form_with model:[@book,@book_comment], local: true do |f| %> 18 <%= f.text_area :comment, size:"90x5" %><br> 19 <%= f.submit '送信'%> 20<% end %>
routes
1Rails.application.routes.draw do 2 devise_for :users 3 root to: 'homes#top' 4 get 'home/about' => 'homes#index' 5 6 resources :books,only:[:new,:create,:index,:show,:destroy,:edit,:update]do 7 resource :favorites,only:[:create,:destroy] 8 resources :book_comments,only:[:create,:destroy] 9 end 10 resources :users,only:[:show,:new,:index,:edit,:create,:update] 11end 12
試したこと
rails routesコマンドにてルートの確認。
補足情報(FW/ツールのバージョンなど)
rails routesコマンドにてルートの確認をしたところ、
book_book_comment DELETE /books/:book_id/book_comments/:id(.:format) book_comments#destroy となっていたので平気だと思うのですが。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。