Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未初始化常量CarrierWave::Storage::Fog与Google云存储_Ruby On Rails_Ruby On Rails 4_Carrierwave_Fog_Sitemap Generator Gem - Fatal编程技术网

Ruby on rails 未初始化常量CarrierWave::Storage::Fog与Google云存储

Ruby on rails 未初始化常量CarrierWave::Storage::Fog与Google云存储,ruby-on-rails,ruby-on-rails-4,carrierwave,fog,sitemap-generator-gem,Ruby On Rails,Ruby On Rails 4,Carrierwave,Fog,Sitemap Generator Gem,我见过很多其他人和我有类似的问题,但没有一个列出的解决方案适用,所以我希望这个了不起的社区能帮助我 我正在尝试使用sitemap_generator gem,但我是Heroku的主机,所以我尝试按照他们的文档使用Carrierwave将站点地图上传到Google云存储。我已经在使用谷歌云上传我的图片,所有的作品都很好,所以我希望这会很简单,但是文件没有被上传。文档中说您需要添加: config.storage = :fog 但是,无论何时添加到carrierwave配置文件,都会出现以下错误:

我见过很多其他人和我有类似的问题,但没有一个列出的解决方案适用,所以我希望这个了不起的社区能帮助我

我正在尝试使用sitemap_generator gem,但我是Heroku的主机,所以我尝试按照他们的文档使用Carrierwave将站点地图上传到Google云存储。我已经在使用谷歌云上传我的图片,所有的作品都很好,所以我希望这会很简单,但是文件没有被上传。文档中说您需要添加:

config.storage = :fog
但是,无论何时添加到carrierwave配置文件,都会出现以下错误:

gems/carrierwave-49fdad1ec6ca/lib/carrierwave/uploader/configuration.rb:75:in `eval': uninitialized constant CarrierWave::Storage::Fog (NameError)
我的Carrierwave配置如下所示:

CarrierWave.configure do |config|
     config.cache_dir = "#{Rails.root}/tmp/"
     config.storage = :fog
     config.fog_credentials = {
         :provider => 'Google'
     }
     config.fog_directory = 'bucket-name'
     config.asset_host = 'https://domain.storage.googleapis.com'
end
(fog_目录和资产_主机将替换为虚拟值)

在我的gem文件中,我有:

gem 'fog'
gem 'carrierwave', github: 'carrierwaveuploader/carrierwave'
我见过很多人使用AWS时都有同样的错误,但他们的解决方案是改为使用fog gem而不是fog AWS(我已经在这么做了),并且需要fog/AWS。我已经这样测试过:

gem 'fog', require: 'fog/google'
但还是有同样的问题

有人能建议我能做些什么来解决这个问题吗?任何帮助都将不胜感激


非常感谢

我在Amazon S3上使用fog aws时也遇到了同样的错误。如果存储为fog,则似乎会发生此错误,无论是AmazonS3还是google云

我使用carrierwave gem上传用户配置文件图片,因此我通过在凭据配置之后移动存储配置来解决此问题,如下所示:

CarrierWave.configure do |config|
  if Rails.env.staging? || Rails.env.production?
    config.fog_provider = 'fog/aws'
    config.fog_credentials = {
      provider: 'AWS',
      aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
      aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
      region: ENV['AWS_REGION']
    }
    config.storage = :fog
    config.fog_directory = ENV['S3_BUCKET']
    config.fog_public    = true
    config.fog_attributes = { cache_control: "public, max-age=#{365.days.to_i}" }
  else
    config.storage = :file
    config.enable_processing = Rails.env.development?
  end
end
另一个解决方案是在上面的文件的顶部添加
require'carrierwave/storage/fog'
。对我来说,文件是initializers目录下的carrier_wave.rb

在我找到上述解决方案的地方添加链接


我知道这篇文章已经发布7个月了,但我只是浪费了36小时来实现同样的gem。。。不走运。文件似乎有点过时了

如果你问我,
fog google
在这一点上是不必要的

试试这个gem for CarrierWaveUploader与google的集成