LoginSignup
11
11

More than 5 years have passed since last update.

Heroku で Rails アプリを使う場合は必ず config.ru が必要らしい

Posted at

先日、他の人の Rails アプリケーションがローカルだと動くのになぜか Heroku で動かないってことがありました。
WEB で開いても Application Error ってなるだけ。

とりあえず heroku logs

まあ、こういう場合はとりあえず heroku logs ですね。

ちょっと出力例がないのですが、application crashed 的なことしか書いておらず、詳細がありませんでした。

heroku logs のログレベルを変更する

heroku logs の出力が少ない場合には

heroku config:add LOG_LEVEL=DEBUG

とやるとログの出力レベルを DEBUG まで下げられます。

config.ru がないらしい

すると、heroku logs と叩いたときに

configuration /app/config.ru not found

と出てきました。確かに Rack のアプリケーションだと必要になると公式ドキュメントには書いてありますね…。

このファイル、Rails のアプリケーションだと、テンプレートのものが生成されるようになっており、変更することはあまりないと思うので、とりあえず他の Rails アプリからコピーしてきました。

config.ru
# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run Rails.application

いつもの

git add config.ru
git commit -m 'Add config.ru'
git push heroku master

としたところ、直りました!

最後にログレベルも除いて落としておきましょう。

heroku config:remove LOG_LEVEL

config.ru はマスト?

とりあえず上で問題は直ったのですが、Rails アプリケーションの場合は Gemfile.lock の内容を見るとドキュメント に書いてあるので、config.ru がなくても Rails アプリケーションだと認識して、うまいことやってくれる、とも取れるんですがねー。

まあ、ドキュメントの記述が少し足りないだけで、Rack アプリだから、config.ru は当然必要でしょってだけかもしれません。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11