23465


Routing Errorを解決したいです。`No route matches [POST]
"/like/4"`とさらに表示されました。POSTが合わないということですよね？

routes.rbには下記のように記述しました。

[code]

    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
    
[/code]

`←←`で示したところにpost のコードを記載し、rake routesを確認したところ、

[code]

    like_path    POST    /like/notes/:id(.:format)    likes#like 
    unlike_path    DELETE    /unlike/notes/:id(.:format)    likes#unlike 
    
[/code]

のようになっており、post と記載すべきなのになぜエラーが出るのか？と思いました。  
どのように記述すべきなのでしょうか？  
お願いいたします。


CC BY-SA 3.0
2016-03-25T13:06:35.073
23459
2016-03-25T23:45:14.613
2016-03-25T16:09:37.703
3068
14754
question
ruby-on-rails
Routing Error No route matches [POST] "/like/4"


routesに`post '/like/notes/:id'`で指定しているのですが、エラーに`/like/4`でアクセスしようとしていると書いてあります。  
`post '/like/notes/:id'`を`post
'/like/:id'`に変えるか、または`/like/4`でアクセスしようとしているコードを変えるかのどちらかで解決できます。


CC BY-SA 3.0
2016-03-25T14:05:12.317
23460
2016-03-25T14:05:12.317
14928
23459
answer


「どのように記述すべきなのでしょうか？」については的確な回答が出ていますからこちらの部分。  
_POSTが合わないということですよね？_  
`No route matches [POST] "/like/4"`は「`[POST]
"/like/4"`にマッチするようなルートが存在しない」と言う意味です。POSTだけがダメと言っているのではありません。


CC BY-SA 3.0
2016-03-25T23:45:14.613
23465
2016-03-25T23:45:14.613
13972
23459
answer