我正在使用rails 3,我想根据当前环境设置存储变量,如下所示:
#if enviroment = development or test
:storage => :filesystem,
#else
:storage => :s3,
#end
你的方法是什么?我考虑过设置环境变量,但我认为必须有更好的方法。
感谢您的时间 西蒙
答案 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?
测试这些特定环境。