![](/img/trans.png)
[英]Rails 3 email password in environment.rb? Push to git safe?
[英]Rails on Heroku: git add environment.rb or not?
我通常git-ignore config / environment.rb文件。 我將ENV ['RAILS_ENV']設置添加到該文件中,因此在不同的計算機上應該不同。
但是,Heroku在git中需要該文件。 沒有它,應用程序將崩潰。
您如何處理?
謝謝。
山姆
您不應忽略config/environment.rb
。 正如Zeke回答的那樣,您可以在實時的Heroku應用程序中設置環境變量。
要查看可用於heroku應用程序的環境變量列表,請運行heroku config
。 要設置特定變量的值,請運行heroku config:add RAILS_ENV=staging --app yourapp
。
但是,在自己的計算機上運行的開發應用程序又如何呢? 有一些選項,一種是在shell中導出環境變量:
$ export RAILS_ENV=staging
$ echo $RAILS_ENV
staging
但是我更喜歡另一種方法。 這就是我的config/environment.rb
:
# Load the rails application
require File.expand_path('../application', __FILE__)
# Load environment vars from local file
env_vars = File.join(Rails.root.to_s, 'config', 'env_vars.rb')
load(env_vars) if File.exists?(env_vars)
# Initialize the rails application
MyApp::Application.initialize!
如果有config/env_vars.rb
文件,將被加載。 這是樣本env_vars.rb
文件的內容:
ENV["REDISTOGO_URL"] = 'redis://localhost:6379'
ENV["AWS_ACCESS_KEY"] = '283983483'
ENV["AWS_SECRET"] = '743843934'
ENV["S3_BUCKET"] = 'myapp-development'
這樣,您可以為開發,登台和生產應用程序使用不同的環境變量集。
您將需要git-ignore這個文件 。
在運行開發應用程序時,我想將文件發送到myapp-development
S3存儲桶。 但是我希望我的生產應用程序(在Heroku中)將文件發送到myapp-production
S3存儲桶。
$ heroku config:add S3_BUCKET='myapp-production' --app myapp
還有另一個用於我的登台應用程序的存儲桶(也在Heroku中運行):
$ heroku config:add S3_BUCKET='myapp-staging' --app myapp-staging
由於您將git-ignore config/env_vars.rb
,因此它將不會出現在您在Heroku中運行的應用程序中,因此它們將從上述heroku config:add
配置中獲取環境變量。
由於我與其他人一起工作,因此我經常在項目中包含一個示例env_vars.rb.example
文件,git不會忽略該文件:
文件config/env_vars.rb.example
:
# Copy this file to config/env_vars.rb
# MAKE SURE THAT YOUR .gitignore INCLUDES IT!
#
# This file is used to set environment variables that would be present on
# Heroku, and are needed for our development and test instances to run.
ENV["REDISTOGO_URL"] = 'redis://localhost:6379'
ENV["AWS_ACCESS_KEY"] = 'xxx'
ENV["AWS_SECRET"] = 'xxx'
ENV["S3_BUCKET"] = 'some-bucket'
if Rails.env.test?
HOST = "example.com"
else
HOST = "development.intranet"
end
請注意,加載此env_vars.rb
文件的一個優點是,您可以通過編程方式執行其他操作,例如,如果您像上面那樣運行測試,則將HOST
常量設置為其他值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.