我不确定如何配置环境,以便Carrier Wave在本地(开发)运行应用程序时使用本地文件存储,并在加载到heroku(生产)后使用s3
在开发存储:文件
中 生产存储中的:s3
答案 0 :(得分:24)
两种型号,或者您可以全局设置它。在https://github.com/jnicklas/carrierwave/tree/v0.5.2
查看v0.5.2(当前宝石)的自述文件在底部附近,有一些配置测试环境的说明。使用相同的方法为“开发”和“生产”使用不同的配置,例如将文件“carrierwave.rb”添加到“config / initialisers”并添加配置代码
if Rails.env.test? or Rails.env.cucumber?
CarrierWave.configure do |config|
config.storage = :file
config.enable_processing = false
end
end
和发展
if Rails.env.development?
CarrierWave.configure do |config|
config.storage = :file
end
end
和生产
if Rails.env.production?
CarrierWave.configure do |config|
config.storage = :s3
end
end
答案 1 :(得分:7)
我通常做的最简单的方法是通过上传器。
class CoverUploader < CarrierWave::Uploader::Base
# Choose what kind of storage to use for this uploader:
storage (Rails.env.production? ? :fog : :file)
end
答案 2 :(得分:1)
我猜这是在某个模型中设置的。你可以做点什么
if Rails.env.production?
// set production
else
// set dev / test
end