###解決したいこと
初めて質問します。
ruby on rails5.2.4/ruby2.6.3/herokuで簡単な投稿を作ってみようと思いコードを書いておりました。
ここに質問の内容を詳しく書いてください。
簡単な投稿アプリを作成しており、Herokuにデプロイしました。
本番環境でも、ログイン、投稿、ユーザー作成、投稿(画像含む)など問題無く動作しておりました。
しかし、ログアウト機能のみ、
The page you were looking for doesn't exist.
You may have mistyped the address or the page may have moved.
If you are the application owner check the logs for more information.
というエラーが出てしまいました。
ログを確認すると、
ActionController::RoutingError (No route matches [GET] "/logout"):
となっていました。
ちなみに、ローカルでは問題無くログアウトしております。
本番環境でも、ログアウト機能が動くようにしたいです。
該当のソースコード
●App/view/layouts/application.html.haml
!!!
%html
%head
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
%title 投稿データ
= csrf_meta_tags
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
%link{:href => "https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css", :rel => "stylesheet"}/
%body
%header
.header-logo
- if @current_user
= link_to("投稿データ", "/posts")
- else
= link_to("投稿データ一覧", "/")
%ul.header-menus
- if @current_user
%li
= link_to(@current_user.name, "/users/#{@current_user.id}")
%li
= link_to("一覧", "/posts")
%li
= link_to("投稿", "/posts/new")
%li
= link_to("ログアウト", "/logout", {method: :post})
- else
%li
= link_to("新規登録", "/signup")
%li
= link_to("ログイン", "/login")
- if flash[:notice]
.flash
= flash[:notice]
= yield
●Gemfile
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem "pry-rails"
gem "pry-byebug"
gem 'bcrypt'
gem 'carrierwave', '~> 1.3', '>= 1.3.1'
gem 'mini_magick'
gem 'mysql2'
gem 'jquery-rails'
gem 'haml-rails'
gem 'erb2haml'
●config/routes.rb
Rails.application.routes.draw do
post "likes/:post_id/create" => "likes#create"
post "likes/:post_id/destroy" => "likes#destroy"
#ユーザー
post "users/:id/update" => "users#update"
get "users/:id/edit" => "users#edit"
post "users/create" => "users#create"
get "signup" => "users#new"
get "users/index" => "users#index"
get "users/:id" => "users#show"
post "login" => "users#login"
post "logout" => "users#logout"
get "login" => "users#login_form"
get "users/:id/likes" => "users#likes"
#新選手の投稿
resources :posts
delete "posts/:id/destroy" => "posts#destroy"
root "home#top"
get "postdate" => "home#postdate"
end
試したこと
調べると、Javascriptの問題と記載があったので、
$rm -rf public/assets
をした後、
$git add .
$git commit -m "[コミット内容]"
$git push heroku master
実行するも変化無し
//= require jquery
//= require jquery_ujs
を一番上に持ってくるも変化無しだった。
補足情報(FW/ツールのバージョンなど)
恐らくログに記載されていた。
ActionController::RoutingError (No route matches [GET] "/logout"):
これが原因だと考えておりますが、他に確認するべき項目があれば、ご教示お願いします。
あなたの回答
tips
プレビュー