前提・実現したいこと
今twitterのようなサ-ビスを作り途中で、たまたま投稿を一つ削除したらエラーが出ました。
ネットでいろいろ検索したのですが、大体がpostとgetのミスだったり、routesのアクションの設定ミスで、解決案が見当たりませんでした。
発生している問題・エラーメッセージ
No route matches [GET] "/posts/1/destroy
該当のソースコード
routes.rb
Rails.application.routes.draw do get "login" => "users#login_form" post "login" => "users#login" post "logout" => "users#logout" post "users/:id/update" => "users#update" get "users/:id/edit" => "users#edit" post "users/create" => "users#create" get "users/signup" => "users#new" get "users/index" => "users#index" get "users/:id" => "users#show" get "posts/index" => "posts#index" get "posts/new" => "posts#new" get "posts/:id" => "posts#show" post "posts/create" => "posts#create" get "posts/:id/edit" => "posts#edit" post "posts/:id/update" => "posts#update" post "posts/:id/destroy" => "posts#destroy" get "/" => "home#top" get "about" => "home#about" end
posts_controller.rb
def destroy @post = Post.find_by(id: params[:id]) @post.destroy flash[:notice] = "投稿を削除しました" redirect_to("/posts/index") end
destroyアクションを使うshow.html.erb
<div class="main posts-show"> <div class="container"> <div class="posts-show-item"> <p> <%= @post.content %> </p> <div class="post-time"> <%= @post.created_at %> </div> <div class="post-menus"> <%= link_to("編集", "/posts/#{@post.id}/edit") %> <%= link_to("削除", "/posts/#{@post.id}/destroy", {method: "post"}) %> </div> </div> </div> </div>
###お願い
これがミスしてるままだと、先に進めないので解決よろしくお願いいたします
。
補足情報(FW/ツールのバージョンなど)
windows10
数時間海外サイト等も使い検索しましたがうまくいく解決策がありませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/26 13:32
2020/04/26 13:36
2020/04/26 13:43
2020/04/26 13:50
2020/04/26 13:52
2020/04/26 14:13
2020/04/26 15:28
2020/04/26 15:55
2020/04/26 16:03
2020/04/27 00:40