Ruby on Rails使用环境变量

15 浏览
0 Comments

Ruby on Rails使用环境变量

我想在我的代码中(包括视图)使用变量,例如:

ENV['SERVER_URL1'] 

并且希望它们在不同的环境(生产、开发、测试)中有所不同。

  1. 我应该在哪里设置它们?
  2. 使用ENV变量是否是配置不同环境应用程序的正确方法?
  3. 关于ENV['SERVER_URL'] - 它是一个标准的变量吗?何时变为可用。

我尝试在应用程序的不同部分(application.rb、development.rb)中设置:

ENV['SERVER_URL1'] = 'http://localhost:4000/'

但似乎没有起作用。

0
0 Comments

在Rails 4.1+中,设置环境变量的新方法是使用config/secrets.yml文件。在4.1版本的发布说明中,提到了这个新的方法。在config/secrets.yml文件中添加的secrets可以通过Rails.application.secrets进行访问。例如,在以下的config/secrets.yml中:

development:

secret_key_base: 3b7cd727ee24e8444053437c36cc66c3

some_api_key: SOMEKEY

在开发环境中,Rails.application.secrets.some_api_key返回SOMEKEY。关于如何迁移现有应用程序以使用这个功能,请参考升级Ruby on Rails指南。

所以你应该设置:

development:

SERVER_URL1: http://localhost:4000

production:

SERVER_URL1: http://my-domain.com

0