前提・実現したいこと
awsを使ってアプリを作成中。
デプロイ後に出てくるエラーを直してトップページまたは新規登録画面に行きたい。
発生している問題・エラーメッセージ
Railsでデプロイ後にWe're sorry, but something went wrong.
If you are the application owner check the logs for more information.と、エラーが発生しました。ログを確認すると
I, [2020-04-15T06:47:56.909332 #2485] INFO -- : [ea02e019-d7da-4f41-8c5f-88f004bf8979] Started GET "/" for 153.239.131.8 at 2020-04-15 06:47:56 +0000 F, [2020-04-15T06:47:56.910812 #2485] FATAL -- : [ea02e019-d7da-4f41-8c5f-88f004bf8979] F, [2020-04-15T06:47:56.910862 #2485] FATAL -- : [ea02e019-d7da-4f41-8c5f-88f004bf8979] ActionController::RoutingError (No route matches [GET] "/"): F, [2020-04-15T06:47:56.910887 #2485] FATAL -- : [ea02e019-d7da-4f41-8c5f-88f004bf8979] F, [2020-04-15T06:47:56.910925 #2485] FATAL -- : [ea02e019-d7da-4f41-8c5f-88f004bf8979] actionpack (5.0.7.2) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
と出てルーティングエラーなのは分かったのですが、ローカル環境では問題なく動いています。
該当のソースコード
ルーティング
routes
1Rails.application.routes.draw do 2 devise_for :users 3 4 root to: 'top#top' 5 resources :result, only: [:show, :new, :create, :edit] 6 get "/:id/beginner", to: "result#beginner" 7 post "/:id/beginner", to: "result#create_beginner" 8 patch "/result", to: "result#update" 9end
top_controller.rb
class TopController < ApplicationController def top if user_signed_in? user = Saving.find_by(user_id: current_user) if user != nil redirect_to result_path(current_user.id) else redirect_to "/#{current_user.id}/beginner" end else redirect_to new_user_registration_path end end end
試したこと
ルーティングの本番環境下でのエラーが初めてで検索しても全く情報が出てこなかったのでお手上げです。ただ単にルーティングエラーっぽいですがマージした後なのでそこが問題あると思うのですが、何が間違っているのかが分からないです。ただFailed to load resource: the server responded with a status of 500 (Internal Server Error)と出ているので文法エラーなのは間違いなさそうです。
マージした所で関係ありそうな所も載せておきます。
ルーティング
Rails.application.routes.draw do devise_for :users root to: 'top#top' - resources :result, only: [:show, :new, :create] - get "/beginner", to: "result#beginner" - post "/beginner", to: "result#create_beginner" + resources :result, only: [:show, :new, :create, :edit] + get "/:id/beginner", to: "result#beginner" + post "/:id/beginner", to: "result#create_beginner" + patch "/result", to: "result#update" end
top_controller.rb
class TopController < ApplicationController def top if user_signed_in? - redirect_to result_path(current_user.id) + user = Saving.find_by(user_id: current_user) + if user != nil + redirect_to result_path(current_user.id) + else + redirect_to "/#{current_user.id}/beginner" + end + else + redirect_to new_user_registration_path end end end
補足情報(FW/ツールのバージョンなど)
Rails version 5.0.7.2
Ruby version 2.5.1
unicorn 5.4.1
capistrano version 3.13.0
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。