質問: Routing Errorを解決したいです。No route matches [POST] "/like/4"とさらに表示されました。POSTが合わないということですよね? routes.rbには Rails.application.routes.draw do devise_for :users resources :users, only: [:index, :show, :edit, :update,:like] resources :notes, only: [:show, :create, :edit, :update, :destroy,:like] get'/top' => 'home#top' get'/connection' => 'home#connection' get'/notes/new' => 'notes#new' post'/notes' =>'notes#create' get'/notes' =>'notes#index' patch'/notes/:id' =>"notes#update",as:'update_note' delete'/notes/:id' =>"notes#destroy",as:'destroy_note' post '/like/notes/:id' => 'likes#like', as: 'like'←← delete '/unlike/notes/:id' => 'likes#unlike', as: 'unlike' root 'home#top' get'/about' => 'home#about' end のように記述しました。←←で示したところにpost のコードを記載し、rake routesを確認したところ、 like_path POST /like/notes/:id(.:format) likes#like unlike_path DELETE /unlike/notes/:id(.:format) likes#unlike のようになっており、post と記載すべきなのになぜエラーが出るのか?と思いました。 どのように記述すべきなのでしょうか? お願いいたします。
回答: No routes match [POST] "/like/4"というエラーメッセージは、 POSTメソッドでリクエストされたパス"/like/4"にマッチするroutingがありませんよ、というメッセージです。 ・rake routesで'/like/:id'というパスが存在するか ・呼び出し元のリクエストが正しいパスを出力しているか 上記二つを確認してみてください。 修正依頼にあったように、この質問では、routesが間違っているのか、呼び出し元が間違っているのかの意図が読み取れませんので、これ以上のアドバイスは難しいです。