前提・実現したいこと
使用技術
Rails6.0.3
Ruby 2.6.3p62
実現したいこと
AWS、Nginx、Pumaを使ってデプロイしたアプリケーションで投稿削除やログアウトをしたい。
発生している問題・エラーメッセージ
ActionController::RoutingError (No route matches [GET] "/logout"):
ec2サーバー上でsudo tail -f log/production.logを実行した結果です
[2021-10-26T10:33:48.373111 #26769] INFO -- : [1860493b-41b3-4d0f-9b7e-e62894e7414d] Started GET "/logout" for 180.149.181.188 at 2021-10-26 10:33:48 +0000 F, [2021-10-26T10:33:48.373638 #26769] FATAL -- : [1860493b-41b3-4d0f-9b7e-e62894e7414d] [1860493b-41b3-4d0f-9b7e-e62894e7414d] ActionController::RoutingError (No route matches [GET] "/logout"): [1860493b-41b3-4d0f-9b7e-e62894e7414d] [1860493b-41b3-4d0f-9b7e-e62894e7414d] actionpack (6.0.3) lib/action_dispatch/middleware/debug_exceptions.rb:36:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] actionpack (6.0.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] railties (6.0.3) lib/rails/rack/logger.rb:37:in `call_app' [1860493b-41b3-4d0f-9b7e-e62894e7414d] railties (6.0.3) lib/rails/rack/logger.rb:26:in `block in call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] activesupport (6.0.3) lib/active_support/tagged_logging.rb:80:in `block in tagged' [1860493b-41b3-4d0f-9b7e-e62894e7414d] activesupport (6.0.3) lib/active_support/tagged_logging.rb:28:in `tagged' [1860493b-41b3-4d0f-9b7e-e62894e7414d] activesupport (6.0.3) lib/active_support/tagged_logging.rb:80:in `tagged' [1860493b-41b3-4d0f-9b7e-e62894e7414d] railties (6.0.3) lib/rails/rack/logger.rb:26:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] actionpack (6.0.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] actionpack (6.0.3) lib/action_dispatch/middleware/request_id.rb:27:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] rack (2.2.3) lib/rack/method_override.rb:24:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] rack (2.2.3) lib/rack/runtime.rb:22:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] activesupport (6.0.3) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] actionpack (6.0.3) lib/action_dispatch/middleware/executor.rb:14:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] rack (2.2.3) lib/rack/sendfile.rb:110:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] actionpack (6.0.3) lib/action_dispatch/middleware/host_authorization.rb:76:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] railties (6.0.3) lib/rails/engine.rb:527:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] puma (4.3.6) lib/puma/configuration.rb:228:in `call' [1860493b-41b3-4d0f-9b7e-e62894e7414d] puma (4.3.6) lib/puma/server.rb:713:in `handle_request' [1860493b-41b3-4d0f-9b7e-e62894e7414d] puma (4.3.6) lib/puma/server.rb:472:in `process_client' [1860493b-41b3-4d0f-9b7e-e62894e7414d] puma (4.3.6) lib/puma/server.rb:328:in `block in run' [1860493b-41b3-4d0f-9b7e-e62894e7414d] puma (4.3.6) lib/puma/thread_pool.rb:134:in `block in spawn_thread'
該当のソースコード
ruby
1<%= link_to "ログアウト", logout_path, method: :delete, data: { confirm: "本当にログアウトしますか?" }, style: "color: #ff4f4f; display: block; padding: 0.5rem 1rem;" %>
js
1require("@rails/ujs").start() 2require("turbolinks").start() 3require("@rails/activestorage").start() 4require("channels") 5require('jquery')
ログアウト処理のコントローラ
def destroy log_out if logged_in? redirect_to root_path end
log_outメソッド
def log_out forget(current_end_user) session.delete(:end_user_id) @current_end_user = nil end
試したこと
投稿削除やログアウトといったhttpリクエストがdeleteのものが全てうまくいかないことから、method::deleteがうまく機能してないと考えた。このmethod: :deleteはrails-ujsが機能を担っているので、rails-ujsに関する記事をあたってみましたがapplication.jsなどのファイルに原因は見つかりませんでした。ec2サーバーにsshでログインした上でbundleのインストールや、アッセトプリコンパイル、マイグレーションなどは全て実行しました。これらの部分でエラーは発生していません。もちろんローカルではmethod: :deleteの部分やルーティングはしっかり機能しており問題はありません。ずっと手が止まってしまっているのでお助けいただけると助かります。
回答1件
あなたの回答
tips
プレビュー