Sinatra アプリをサーバー (heroku) にアップロードしました。しかし、そこでうまく動作する私の別のRailsアプリとは異なり、アプリはローカルホストにあるように動作するようです。
Sinatra アプリが正しい環境を使用しているかどうかを確認するにはどうすればよいですか? また、シナトラはどの環境を使用するかをどのように判断するのでしょうか?
本来、heroku は環境設定を処理します。デフォルトでは「生産」です。ユースケースごとに異なる構成/動作がある場合は、最初にそれをコーディングする必要があります。
例えば
if ENV=="production"
# do something
elsif ENV=="staging"
# do something else
end
環境を明示的に「本番環境」などに設定する理由がわかりません。それはホスティング環境の裁量に任せるべきです。
アップデート
さらにアップデート
heroku run printenv
上記は環境変数をリストする必要があります。
すべての heroku インスタンスに環境変数を追加します。
heroku config:add APP_NAME=<myappname>
次に、Sinatra の場合、config.ru に次のように記述します。
# detect environments and setup some passwords
case ENV['APP_NAME']
when 'prod-damon'
# whatever for production
when 'dev-damon'
# whatever for development on Heroku
else
# whatever for local
end