Rails method deleteなのにgetのrouting error

問題:
method: :deleteなのに[GET]routeがないというエラーが出る。

 

エラーメッセージ:(rails c、コンソールより)
ActionController::RoutingError (No route matches [GET] "/sessions"):

 

HTML:

~~~~

<%- if logged_in? %>
<%= "ログイン名:"%>
<%=@user.name %>
<%= link_to "ログアウト", sessions_path, :method=> :delete, :class=>"btn-signup btn btn-orange", :style=>"margin-top: 3px; float: right; margin-left: 10px;"%>

~~~~

 

解決:

 

1:route.rb

resource :sessions, only: [:new, :create, :destroy]
get '/users/sign_out' => 'sessions#destroy'            追加!

 

2:rake routes でpathをチェック

users_sign_out_path  [ GET ]

3:view 書き換え

<%- if logged_in? %>
<%= link_to "ログアウト", users_sign_out_path, :method=> :delete, :class=>"btn-signup btn btn-orange"%>

 

 

 

qiita.com