質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

1565閲覧

developmentモードだといけるのですが、productionモードだとエラーが出てしまいます。

fujitaro

総合スコア8

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/03/23 09:40

開発環境

ruby 2.6.4
Rails 6.0.2.2
Docker version 19.03.8, build afacb8b
docker-compose version 1.25.4, build 8d51620a

前提・実現したいこと

Ruby on Rails6実践ガイドという書籍にてハンズオン形式にて勉強しています。
現在ログイン機能を実装しているのですが、デベロップメントモードならば実装できているのですが、プロダクションモードだと動きません。

この画面からログインしたいのですが、
イメージ説明
このように500 internal server errorが出てしまいます。
rails s コマンドは

bin/rails s -e production -b 0.0.0.0
bin/rails s -e development -b 0.0.0.0

で起動させています。
ログイン周りのコードは
app/controllers/staff/sessions_controller.rb

class Staff::SessionsController < Staff::Base def new if current_staff_member redirect_to :staff_root else @form = Staff::LoginForm.new render action: "new" end end def create @form = Staff::LoginForm.new(params[:staff_login_form]) if @form.email.present? staff_member = StaffMember.find_by("LOWER(email) = ?", @form.email.downcase) end if staff_member session[:staff_member_id] = staff_member.id redirect_to :staff_root else render action: "new" end end end

app/controllers/staff/base.rb

class Staff::Base < ApplicationController private def current_staff_member if session[:staff_member_id] @current_staff_member ||= StaffMember.find_by(id: session[:staff_member_id]) end end helper_method :current_staff_member end

app/controllers/staff/apprication_controller

class ApplicationController < ActionController::Base layout :set_layout class Forbidden < ActionController::ActionControllerError; end class IpAddressRejected < ActionController::ActionControllerError; end include ErrorHandlers if Rails.env.production? private def set_layout if params[:controller].match(%r{\A(staff|admin|cutomer)/}) Regexp.last_match[1] else "customer" end end end

views/staff/sessions/new.html.erb(ログイン画面)

<% @title = "ログイン" %> <div id="login-form"> <h1><%= @title %></h1> <%= form_with model: @form, url: :staff_session do |f| %> <div> <%= f.label :email, "メールアドレス" %> <%= f.text_field :email %> </div> <div> <%= f.label :password, "パスワード" %> <%= f.password_field :password %> </div> <div> <%= f.submit "ログイン" %> </div> <% end %> </div>

になります。

developmentモードでのログ(これは成功しています。)

Started GET "/staff" for 172.18.0.1 at 2020-03-23 09:33:11 +0000 (7.7ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC Processing by Staff::TopController#index as HTML Rendering staff/top/index.html.erb within layouts/staff Rendered staff/top/index.html.erb within layouts/staff (Duration: 15.3ms | Allocations: 232) [Webpacker] Everything's up-to-date. Nothing to do Rendered staff/shared/_header.html.erb (Duration: 7.5ms | Allocations: 176) Rendered shared/_footer.html.erb (Duration: 6.9ms | Allocations: 84) Completed 200 OK in 769ms (Views: 760.2ms | ActiveRecord: 0.0ms | Allocations: 15110) Started GET "/staff/login" for 172.18.0.1 at 2020-03-23 09:33:14 +0000 Processing by Staff::SessionsController#new as HTML Rendering staff/sessions/new.html.erb within layouts/staff Rendered staff/sessions/new.html.erb within layouts/staff (Duration: 20.9ms | Allocations: 1102) [Webpacker] Everything's up-to-date. Nothing to do Rendered staff/shared/_header.html.erb (Duration: 0.3ms | Allocations: 36) Rendered shared/_footer.html.erb (Duration: 0.1ms | Allocations: 5) Completed 200 OK in 227ms (Views: 209.4ms | ActiveRecord: 0.0ms | Allocations: 5722) Started POST "/staff/session" for 172.18.0.1 at 2020-03-23 09:33:21 +0000 Processing by Staff::SessionsController#create as HTML Parameters: {"authenticity_token"=>"iaoVfjwTz6jc9NSC7/BcKgBM77t46dveCi4RQUDaLGYodk9a7trbrfbpC/SQfBZM4QBeZ2peonYkZe3HxfkWBw==", "staff_login_form"=>{"email"=>"taro@example.com", "password"=>"[FILTERED]"}, "commit"=>"ログイン"} StaffMember Load (13.4ms) SELECT "staff_members".* FROM "staff_members" WHERE (LOWER(email) = 'taro@example.com') LIMIT $1 [["LIMIT", 1]] ↳ app/controllers/staff/sessions_controller.rb:15:in `create' Redirected to http://localhost:3000/staff Completed 302 Found in 109ms (ActiveRecord: 54.0ms | Allocations: 9814) Started GET "/staff" for 172.18.0.1 at 2020-03-23 09:33:21 +0000 Processing by Staff::TopController#index as HTML Rendering staff/top/index.html.erb within layouts/staff Rendered staff/top/index.html.erb within layouts/staff (Duration: 0.2ms | Allocations: 7) [Webpacker] Everything's up-to-date. Nothing to do StaffMember Load (3.7ms) SELECT "staff_members".* FROM "staff_members" WHERE "staff_members"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]] ↳ app/controllers/staff/base.rb:5:in `current_staff_member' Rendered staff/shared/_header.html.erb (Duration: 28.4ms | Allocations: 1092) Rendered shared/_footer.html.erb (Duration: 0.1ms | Allocations: 5) Completed 200 OK in 364ms (Views: 357.4ms | ActiveRecord: 4.3ms | Allocations: 5026)

productionモードでのログ

tail -f apps/baukis2/log/production.log I, [2020-03-23T09:07:08.834014 #611] INFO -- : [59790067-2449-4e14-a2d5-41e4ece32755] Rendered shared/_footer.html.erb (Duration: 0.1ms | Allocations: 5) I, [2020-03-23T09:07:08.834822 #611] INFO -- : [59790067-2449-4e14-a2d5-41e4ece32755] Completed 200 OK in 42ms (Views: 38.2ms | Allocations: 2055) I, [2020-03-23T09:07:15.011573 #611] INFO -- : [9e7d3c8f-9e7f-4c14-9a1e-6da9f7bf7304] Started POST "/staff/session" for 172.18.0.1 at 2020-03-23 09:07:15 +0000 I, [2020-03-23T09:07:15.014584 #611] INFO -- : [9e7d3c8f-9e7f-4c14-9a1e-6da9f7bf7304] Processing by Staff::SessionsController#create as HTML I, [2020-03-23T09:07:15.015529 #611] INFO -- : [9e7d3c8f-9e7f-4c14-9a1e-6da9f7bf7304] Parameters: {"authenticity_token"=>"nrvUz+IDcVhjzIb9EUPxa/TpXzxfxU3HdJy5rYxzUjyqaLPS4y/eTxpf8MpijklrdRCkfjlOokxKlLKMP/haBg==", "staff_login_form"=>{"email"=>"taro@example.com", "password"=>"[FILTERED]"}, "commit"=>"ログイン"} I, [2020-03-23T09:07:15.256850 #611] INFO -- : [9e7d3c8f-9e7f-4c14-9a1e-6da9f7bf7304] Rendering errors/internal_server_error.html.erb within layouts/staff I, [2020-03-23T09:07:15.261264 #611] INFO -- : [9e7d3c8f-9e7f-4c14-9a1e-6da9f7bf7304] Rendered errors/internal_server_error.html.erb within layouts/staff (Duration: 3.7ms | Allocations: 91) I, [2020-03-23T09:07:15.264569 #611] INFO -- : [9e7d3c8f-9e7f-4c14-9a1e-6da9f7bf7304] Rendered staff/shared/_header.html.erb (Duration: 0.7ms | Allocations: 46) I, [2020-03-23T09:07:15.265905 #611] INFO -- : [9e7d3c8f-9e7f-4c14-9a1e-6da9f7bf7304] Rendered shared/_footer.html.erb (Duration: 0.2ms | Allocations: 5) I, [2020-03-23T09:07:15.267106 #611] INFO -- : [9e7d3c8f-9e7f-4c14-9a1e-6da9f7bf7304] Completed 500 Internal Server Error in 251ms (Views: 23.8ms | ActiveRecord: 149.8ms | Allocations: 4016) ¥I, [2020-03-23T09:23:58.264584 #611] INFO -- : [71baba8f-7758-4b39-8646-2fa4514b770d] Started POST "/staff/session" for 172.18.0.1 at 2020-03-23 09:23:58 +0000 I, [2020-03-23T09:23:58.268226 #611] INFO -- : [71baba8f-7758-4b39-8646-2fa4514b770d] Processing by Staff::SessionsController#create as HTML I, [2020-03-23T09:23:58.269486 #611] INFO -- : [71baba8f-7758-4b39-8646-2fa4514b770d] Parameters: {"authenticity_token"=>"98gma8uL/1yiY4Ff9y58Csmqqj+JHr9O2yfsGdUpYlL9tvUsqZBJ5PUmwMvukIhn8aV1D7Rsx4Tpo47oEV+feQ==", "staff_login_form"=>{"email"=>"taro@example.com", "password"=>"[FILTERED]"}, "commit"=>"ログイン"} I, [2020-03-23T09:23:58.367705 #611] INFO -- : [71baba8f-7758-4b39-8646-2fa4514b770d] Rendering errors/internal_server_error.html.erb within layouts/staff I, [2020-03-23T09:23:58.368861 #611] INFO -- : [71baba8f-7758-4b39-8646-2fa4514b770d] Rendered errors/internal_server_error.html.erb within layouts/staff (Duration: 0.1ms | Allocations: 4) I, [2020-03-23T09:23:58.370283 #611] INFO -- : [71baba8f-7758-4b39-8646-2fa4514b770d] Rendered staff/shared/_header.html.erb (Duration: 0.1ms | Allocations: 39) I, [2020-03-23T09:23:58.371588 #611] INFO -- : [71baba8f-7758-4b39-8646-2fa4514b770d] Rendered shared/_footer.html.erb (Duration: 0.0ms | Allocations: 5) I, [2020-03-23T09:23:58.372681 #611] INFO -- : [71baba8f-7758-4b39-8646-2fa4514b770d] Completed 500 Internal Server Error in 102ms (Views: 5.3ms | ActiveRecord: 44.4ms | Allocations: 2985)

になります。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2020/03/24 08:58

productionモードでmaigrateはしているのですか?
fujitaro

2020/03/24 10:31

しております。
winterboum

2020/03/27 06:45

logをdebugモードにしてもう少し情報が取れるようにしてください
guest

回答1

0

こんにちは!

プリコンパイルだったり、production環境のDBをcreate、migrateしたりは試されましたか?

RAILS_ENV=production bin/rails db:create db:migrate

投稿2020/03/27 10:44

jayson_tatum

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問