将rails环境变为变量

时间:2012-08-16 03:40:05

标签: ruby-on-rails-3 environment-variables

我认为这很简单,但似乎无法弄清楚如何做到这一点。

我在s3中存储了一些图像,并且如果在开发,测试或生产期间保存了项目,则希望拥有不同的存储桶。

所以,我以为我可以说

:storage => :s3,
                  :s3_credentials => ":rails_root/config/s3.yml",
                  :url  => '/activities/:id/:style.:extension',
                  :path => 'activities/:id/:style.:extension',
                  :bucket => 'appName_:envirnment'
当然,我似乎无法找到怎么说:环境。这必须在某个地方作为变量提供,不是吗?

1 个答案:

答案 0 :(得分:3)

只需将#{Rails.env}直接包含在:url和:path值中即可正常工作。对于开发和测试,每次加载类时都会加载url和path值,而在生产中,它们会在引导时加载。所以只需包含它就可以了:

:bucket => "appName_#{Rails.env}"