2015-12-30 33 views
1

我正在設置一個heroku,我正在使用這個guide來設置我的本地開發環境。我的應用程序根目錄中有一個'.env'文件,其變量如指南中所述設置。當我運行時在Ruby on Rails應用程序中加載.env

heroku local:run rails runner "puts ENV['S3_BUCKET']" 

它返回一個空白。我如何才能識別/加載'.env'文件?

+0

我也有這個問題。找到了解決辦法? – davidpm4

回答

0

如果您想使用ENV變量加載.env文件,我建議使用https://github.com/bkeepers/dotenv gem。 如果你已經在使用它,然後根據dotenv自述,你應該儘快加載在引導,例如在配置/ application.rb中添加:

require 'dotenv' 
Dotenv.load 

如果使用PUMA或者獨角獸,在配置/ PUMA .rb,config/unicorn.rb添加:

require "dotenv" 
    Dotenv.load("/path/to/env/.env") 
+0

我正在使用dotenv和PUMA。我認爲你已經破解了它,但是在將這兩行添加到我的puma.rb和application.rb之後,我仍然沒有返回任何內容。任何其他想法? – npresco

0

.env文件適用於開發和測試環境。在使用heroku時,您正在談論生產環境。你不想把你的.env文件放入你的回購站(它有你的祕密,人們可能會偷走它)。所以在heroku上沒有一個.env文件可以引用......相反,你現在使用Heroku的環境變量,同時命名變量和它們的值,就像你在.env文件中做的一樣,那麼它將起作用

+0

我正在嘗試在開發期間在本地環境中使用heroku。我也已將.env文件放入.gitignore中。 – npresco

0

如果遵循本指南時出現問題。

在我的情況的問題是,我跟着指南鏈接https://devcenter.heroku.com/articles/s3在那裏設置環境變量S3_BUCKET _NAME(而不是S3_BUCKET),當我回來的導遊,我試圖讓S3_BUCKET,當我原來是S3_BUCKET _NAME