質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

348閲覧

No route matches [DELETE] "/"を解消したい

gentleyoshi

総合スコア0

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/05/19 12:28

railsでblogアプリを作成しておりdestroy機能をつけようとしているのですが、ブラウザに表示されているDELETEボタンを押して確認ダイアログでOKを押すと次のようなエラーが表示されます。

Routing Error
No route matches [DELETE] "/"

解決方法がおわかりになる方はいらっしゃいますでしょうか。
下記にコードも載せておきます。情報が足りないければご指摘をお願いします。
ご回答お待ちしております。よろしくお願いします。

● 補足情報


OS : macOS Catanlina 10.15.
4
AWS Cloud9

ruby 2.5.1
Rails 5.2.4.2

index.html.erb

1<div class = container> 2 3<% @blogs.each do |blog| %> 4<div class="card my-2 padding-2"> 5 <div class="card body "> 6 <div class="card-title"> 7 <%= link_to blog.title, blog %> 8 </div> 9 <div class="card-text"> 10 <%= blog.body.truncate(60) %> 11 </div> 12 </div> 13 <div class="card-footer text-right"> 14 <%= blog.updated_at.strftime("%Y-%m-%d") %> 15 <%= blog.user_name %> 16 <%= link_to 'Edit', edit_blog_path(blog) %> 17 <%= link_to 'Destroy', blog_path(blog), method: :delete, data: { confirm: 'Are you sure?' } %> 18 </div> 19</div> 20 21 <% end %>

blogs_controller.rb

1class BlogsController < ApplicationController 2 before_action :move_to_index, except: :index 3 # GET /blogs 4 # GET /blogs.json 5 def index 6 @blogs = Blog.all 7 end 8 9 # GET /blogs/1 10 # GET /blogs/1.json 11 def show 12 @blog = Blog.find(params[:id]) 13 end 14 15 # GET /blogs/new 16 def new 17 @blog = Blog.new 18 end 19 20 # GET /blogs/1/edit 21 def edit 22 @blog = Blog.find(params[:id]) 23 end 24 25 # POST /blogs 26 # POST /blogs.json 27 def create 28 @blog = Blog.new(blog_params) 29 30 respond_to do |format| 31 if @blog.save 32 format.html { redirect_to @blog, notice: 'Blog was successfully created.' } 33 format.json { render :show, status: :created, location: @blog } 34 else 35 format.html { render :new } 36 format.json { render json: @blog.errors, status: :unprocessable_entity } 37 end 38 end 39 end 40 41 # PATCH/PUT /blogs/1 42 # PATCH/PUT /blogs/1.json 43 def update 44 @blog = Blog.find(params[:id]) 45 46 if @blog.update(blog_params) 47 redirect_to blogs_path 48 else 49 render 'edit' 50 end 51 end 52 53 # DELETE /blogs/1 54 # DELETE /blogs/1.json 55 def destroy 56 blog = Blog.find(params[:id]) 57 if blog.user_id == current_user.id 58 blog.destroy #destroyメソッドを使用し対象のツイートを削除する。 59 end 60 end 61 62 private 63 # Use callbacks to share common setup or constraints between actions. 64 def set_blog 65 @blog = Blog.find(params[:id]) 66 end 67 68 # Only allow a list of trusted parameters through. 69 def blog_params 70 params.permit(:title, :body, :user_name, :user_id) 71 end 72 73 def move_to_index 74 redirect_to action: :index unless user_signed_in? 75 end 76 77end

routes.rb

1Rails.application.routes.draw do 2 devise_for :users 3 root "blogs#index" 4 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 5 resources :blogs do 6 resources :comments 7 end 8 9 delete "blogs/:id" => "blogs#destroy" 10 11end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2020/05/19 20:38

私の知識ではこれでうまく行かないのがおかしい、、、 念の為 rails routes の結果も載せてください
gentleyoshi

2020/05/19 21:10

ご確認ありがとうございます!数時間トライしていますが原因はまだ掴めず、です。。。 rails routesはこちらです。宜しくお願いします。 ```rails routes Prefix Verb URI Pattern Controller#Action new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/sessions#create destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy new_user_password GET /users/password/new(.:format) devise/passwords#new edit_user_password GET /users/password/edit(.:format) devise/passwords#edit user_password PATCH /users/password(.:format) devise/passwords#update PUT /users/password(.:format) devise/passwords#update POST /users/password(.:format) devise/passwords#create cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel new_user_registration GET /users/sign_up(.:format) devise/registrations#new edit_user_registration GET /users/edit(.:format) devise/registrations#edit user_registration PATCH /users(.:format) devise/registrations#update PUT /users(.:format) devise/registrations#update DELETE /users(.:format) devise/registrations#destroy POST /users(.:format) devise/registrations#create root GET / blogs#index blog_comments GET /blogs/:blog_id/comments(.:format) comments#index POST /blogs/:blog_id/comments(.:format) comments#create new_blog_comment GET /blogs/:blog_id/comments/new(.:format) comments#new edit_blog_comment GET /blogs/:blog_id/comments/:id/edit(.:format) comments#edit blog_comment GET /blogs/:blog_id/comments/:id(.:format) comments#show PATCH /blogs/:blog_id/comments/:id(.:format) comments#update PUT /blogs/:blog_id/comments/:id(.:format) comments#update DELETE /blogs/:blog_id/comments/:id(.:format) comments#destroy blogs GET /blogs(.:format) blogs#index POST /blogs(.:format) blogs#create new_blog GET /blogs/new(.:format) blogs#new edit_blog GET /blogs/:id/edit(.:format) blogs#edit blog GET /blogs/:id(.:format) blogs#show PATCH /blogs/:id(.:format) blogs#update PUT /blogs/:id(.:format) blogs#update DELETE /blogs/:id(.:format) blogs#destroy DELETE /blogs/:id(.:format) blogs#destroy rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create ```
winterboum

2020/05/19 22:13

コメントだとベタになって読みにくいんで、質問欄に<code>で書いて欲しかった
winterboum

2020/05/19 22:21

routesは問題ないように見えますね。 すると link_to 'Destroy', blog_path(blog), method: :delete がなぜ "/"へのrouteを作ろうとしているのか、、、 ですが すみません、力不足です
gentleyoshi

2020/05/19 23:02

質問欄にcodeで追加するべきだったのですね。次回から気をつけます。 ご検証いただき誠にありがとうございます。 解決方法に載せれるよう調査を続けてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問