No route matches [GET] "/logout"の対処
Q&A
Closed
はじめに
rails tutorialを参考にウェブアプリケーションをつくっていたのですが、ログイン、ログアウトのコードを書き終えてプレビューで確認してみると、ログウトでNo route matches [GET] "/logout" とエラーが表示されました。
解決方法がわかる方いましたら教えていただきたいです。
(AWS culoud9で開発しています)
環境
rails 6.0.3
ruby 2.6.3
発生しているエラー
Routing Error
No route matches [GET] "/logout"
該当するソースコード
routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
get '/help', to: 'static_pages#help'
get '/contact', to: 'static_pages#contact'
get '/signup', to: 'users#new'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
resources :users
end
_header.html
<header class="navbar navbar-fixed-top navbar-inverse">
<div class="container">
<%= link_to "GrassBasebaler", '#', id: "logo" %>
<nav>
<ul class="nav navbar-nav navbar-right">
<li><%= link_to "ホーム", root_path %></li>
<% if logged_in? %>
<li><%= link_to "チーム一覧", '#' %></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
アカウント <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><%= link_to "マイページ", current_user %></li>
<li><%= link_to "アカウント設定", '#' %></li>
<li class="divider"></li>
<li>
<%= link_to "ログアウト", logout_path, method: :delete %>
</li>
</ul>
</li>
<% else %>
<li><%= link_to "ログイン", login_path %></li>
<% end %>
</ul>
</nav>
</div>
</header>
Gemfile
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'rails', '6.0.3'
gem 'bcrypt', '3.1.13'
gem 'jquery-rails'
gem 'bootstrap-sass', '3.4.1'
gem 'puma', '4.3.6'
gem 'sass-rails', '5.1.0'
gem 'webpacker', '4.0.7'
gem 'turbolinks', '5.2.0'
gem 'jbuilder', '2.9.1'
gem 'bootsnap', '1.4.5', require: false
application.js
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("jquery")
import "bootstrap"
//= require jquery
//= require jquery_ujs
environment.js
const { environment } = require('@rails/webpacker')
const webpack = require('webpack')
environment.plugins.prepend('Provide',
new webpack.ProvidePlugin({
$: 'jquery/src/jquery',
jQuery: 'jquery/src/jquery'
})
)
module.exports = environment
おわりに
調べた結果、javascriptが正常に動いていないとのことでした。
初歩的な質問で申し訳ありませんがわかる方おられましたら、教えていただきたいです。
また、情報の不足部分があればすぐに載せますのでコメントお願いします。
0