1

我的应用程序中有两个载波上传器。ImageUploader 用于在本地上传,ImageRemoteUploader 用于使用雾上传到 Amazon S3 存储。ImageUploader 的存储设置为:file,ImageRemoteUploader 的存储设置为:fog。此设置工作正常,但是当我开始设置我的 rspec 测试时,情况发生了变化。

当我在测试期间将 ImageRemoteUploader 更改为使用:file存储时,就会出现问题。我在雾初始化文件中执行此操作。文件 /config/initializers/fog.rb如下所示:

CarrierWave.configure do |config|
  if Rails.env.test?
    config.storage = :file
    config.enable_processing = false
  else
    config.fog_credentials = {
    :provider               => 'AWS',       # required
    :aws_access_key_id      => 'XXXXXXXX',       # required
    :aws_secret_access_key  => 'XXXXXX',       # required
    :region                 => 'XXXX'  # optional, defaults to 'us-east-1'
    }
    config.fog_directory  = 'xxx'                     # required
    config.fog_public     = true                                   
  end 
end

当我这样做时,我得到一个ArgumentError is not a recognized storage provider载波异常。当我使用雾凭据(我没有将 config.storage 设置为 :file)时,测试按预期工作。

Carrierwave 0.7.1、Rails 3.2.8、Ruby 1.9.3、Rspec 2.10

谢谢。

4

1 回答 1

3

按照Carrierwave 文档中的建议,我会尝试将config.storageconfig.enable_processing线移入。lib/initializers/carrierwave.rb

Fog也有自己的模拟支持,通过Fog.mock!在示例之前运行来启用。这可能是一个更好的方法。

于 2012-11-30T03:17:33.967 回答