特定的Rails env变量

时间:2016-07-05 21:47:33

标签: ruby-on-rails

生产中的Rails应用程序有文件shared/.env.production内容如下:

DB_NAME=db
DB_PASSWORD=pass

处理此文件的gem是什么?我在哪里可以阅读这些约定?如何在开发中设置它?

2 个答案:

答案 0 :(得分:2)

您可以使用Dotenv gem。在当前版本文件夹中创建shared/.env.production的符号链接。也许,您不需要额外的后缀.production。但是,如果由于某种原因需要,则必须在服务器启动前使用.env.production手动加载Dotenv.load('.env.production')。如果您使用的是Unicorn,可以在unicorn.rb

中添加以下内容
after_fork do |server, worker|
  Dotenv.overload("#{Rails.root}/.env.production")
  defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection 
end

如果您正在使用Capistrano并希望Capistrano为您创建符号链接,请将文件添加到linked_files列表中:

set :linked_files, %w{.env.production}

答案 1 :(得分:1)

您可以查看dotenv(通过dotenv-rails gem)。

我相信gem通常会将.env文件放在根目录中,而不是shared文件夹。