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"%>