微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sinatra CarrierWave雾-NameError:未初始化的常量雾

如何解决Sinatra CarrierWave雾-NameError:未初始化的常量雾

我一直在尝试用Sinatra和Fog设置CarrierWave来进行S3文件管理。我经常遇到围绕雾未定义的问题。当我将存储更改为:file时,此方法可以正常工作。

到目前为止,我还尝试过在NameError: uninitialized constant CarrierWave::Storage::FogNameError: uninitialized constant CarrierWave::Storage::Fog,heroku这里提出的解决方

但是到目前为止我还没有运气。

这是我的整体设置

宝石文件

gem 'fog',require: 'fog/aws'
gem 'carrierwave','~> 2.0'

app.rb

require "carrierwave"

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider:              'fog/aws',# required
    aws_access_key_id:     ENV['AWS_ACCESS_KEY_ID'],# required unless using use_iam_profile
    aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],# required unless using use_iam_profile
    use_iam_profile:       true,# optional,defaults to false
    region:                ENV['AWS_REGION'],defaults to 'us-east-1'
  }
  config.fog_directory  = ENV['S3_BUCKET_NAME']
  config.fog_public     = false                                                 # optional,defaults to true
  config.fog_attributes = { cache_control: "public,max-age=#{365.days.to_i}" } # optional,defaults to {}
    config.fog_provider = 'fog/aws'
end

将此添加到我的用户类别

mount_uploader :profile_picture,ProfileImageUploader

最后是我的ProfileImageUploader

class ProfileImageUploader < CarrierWave::Uploader::Base
  storage :fog
end

我仍然停留在此输出

NameError: uninitialized constant Fog
from ~/.rvm/gems/ruby-2.7.0/gems/carrierwave-2.1.0/lib/carrierwave/storage/fog.rb:159:in `connection'

解决方法

尝试使用
宝石“雾aw”
然后
需要'sinatra / activerecord'
需要'carrierwave'
需要“ carrierwave / orm / activerecord”
需要“雾/雪”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。