根据Rails环境设置变量

时间:2011-07-30 12:40:20

标签: ruby-on-rails ruby

我正在使用rails 3,我想根据当前环境设置存储变量,如下所示:

 #if enviroment = development or test 
    :storage => :filesystem,
    #else
    :storage => :s3,
    #end

你的方法是什么?我考虑过设置环境变量,但我认为必须有更好的方法。

感谢您的时间 西蒙

2 个答案:

答案 0 :(得分:9)

执行此操作的一种方法是使用rails中的内置环境设置。环境目录中设置的变量将覆盖config / environment

<强>到config / environment.rb

ATTACHMENT_OPTIONS = {:storage => :filesystem}

<强>配置/环境/ production.rb

ATTACHMENT_OPTIONS = {:storage => :s3}

然后在您的应用中,只需询问ATTACHMENT_OPTIONS [:storage] - 在您的应用中不使用if / else。

答案 1 :(得分:8)

Rails.env会为您提供所需内容。

您也可以使用

Rails.env.development?
Rails.env.test?
Rails.env.production?
Rails.env.your_custom_environment?

测试这些特定环境。