2012-08-16 60 views
2

我认为这会很简单,但似乎无法弄清楚如何去做。将rails环境作为变量

我在s3中存储了一些图像,并且想要在开发,测试或生产过程中保存项目时使用不同的存储桶。

所以,我想我可以说

 
:storage => :s3, 
        :s3_credentials => ":rails_root/config/s3.yml", 
        :url => '/activities/:id/:style.:extension', 
        :path => 'activities/:id/:style.:extension', 
        :bucket => 'appName_:envirnment' 
当然

,我似乎无法找到如何说:环境。这必须作为变量可用,不是吗?

+0

您可以使用'ENV [“RAILS_ENV”]'或'Rails.env'。你也有一些可用的方法,比如'Rails.env.production?'。 – 2012-08-16 03:44:33

回答

2

它应该正常工作,只需将#{Rails.env}直接包含在:url和:路径值中即可。对于开发和测试,每次加载类和加载时都会加载url和路径值,这些值将在启动时加载。所以只需包括它,它应该可以工作:

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