前提
Progateのこちらのレッスンで削除ボタンを押下するとルーティングのエラーが出る。
ぱっと見routingも設定しているし、リンクの記載も間違っていなそうなのだが、Destoryメソッドが動いていない模様。
method:postを指定しているのだがgetのroutingを探してしまう?
初心者で何が問題かよくわかっておらず、回答いただけると嬉しいです。
実現したいこと
削除ができるようにすること。
発生している問題・エラーメッセージ
該当のソースコード
Ruby
1route.rb 2 3Rails.application.routes.draw do 4 get "posts/index" => "posts#index" 5 get "posts/new" => "posts#new" 6 get "posts/:id" => "posts#show" 7 post "posts/create" => "posts#create" 8 get "posts/:id/edit" => "posts#edit" 9 post "posts/:id/update" => "posts#update" 10 delete "posts/:id/destroy" => "posts#destroy" 11 12 get "/" => "home#top" 13 get "about" => "home#about" 14end
Ruby
1show.html.rb 2 3<div class="main posts-show"> 4 <div class="container"> 5 <div class="posts-show-item"> 6 <p> 7 <%=@post.content%> 8 </p> 9 <div class="post-time"> 10 <%=@post.created_at%> 11 </div> 12 <div class="post-menus"> 13 <%= link_to("編集", "/posts/#{@post.id}/edit") %> 14 <%= link_to("削除", "/posts/#{@post.id}/destroy", {method:"post"}) %> 15 </div> 16 </div> 17 </div> 18</div> 19
Ruby
1post.controller.rb 2 3class PostsController < ApplicationController 4 5 --- 6 7 def destroy 8 @post = Post.find_by(id: params[:id]) 9 @post.destroy 10 redirect_to("/posts/index") 11 end 12 13end 14
補足情報(FW/ツールのバージョンなど)
ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) [x64-mingw32]