У меня ошибка в работе только на Heroku (у меня нет проблем с запуском моего сервера локально, и тот же код работал в более старой среде, например, Rails 4)
NameError: uninitialized constant CarrierWave::Storage::Fog
Эта проблема, кажется, былаидентифицированные во многих случаях, но различные действия, которые я предпринял до сих пор, не решили проблему
https://github.com/carrierwaveuploader/carrierwave/issues/2023
Я сделал следующее:
добавлено в начало инициализатора carrierwave.rb
require 'carrierwave/storage/fog'
добавлено в инициализатор carrierwave.rb
config.storage = :fog
Поскольку проблема, кажется, возникает только в производстве, я изменил все строки
storage = :fog
на то, что у меня естьв разработке / тестировании
storage = :file
Чтобы увидеть, если ошибка не исчезнет и не исчезнет.У меня заканчиваются варианты.У кого-нибудь есть советы, которые помогут мне решить эту проблему?Я добавляю два ключевых файла ниже (если я закомментирую оба полностью, которые запускает сервер):
carrierwave.rb
require 'carrierwave/storage/fog'
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['S3_KEY'],
aws_secret_access_key: ENV['S3_SECRET'],
region: 'us-east-1'
}
if Rails.env.test? || Rails.env.cucumber?
CarrierWave.configure do |config|
config.storage = :file
config.enable_processing = false
end
end
config.cache_dir = "#{Rails.root}/tmp/uploads"
config.fog_directory = ENV['S3_BUCKET_NAME']
end
Doc_uploader.rb
class DocUploader < CarrierWave::Uploader::Base
if Rails.env.development? || Rails.env.test?
storage :file
else
storage :fog
end
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
ИзвлечениеЛоги герои
2018-10-18T13:08:37.404979+00:00 app[web.1]: [4] Puma starting in cluster mode...
2018-10-18T13:08:37.405004+00:00 app[web.1]: [4] * Version 3.12.0 (ruby 2.4.4-p296), codename: Llamas in Pajamas
2018-10-18T13:08:37.405006+00:00 app[web.1]: [4] * Min threads: 5, max threads: 5
2018-10-18T13:08:37.405007+00:00 app[web.1]: [4] * Environment: production
2018-10-18T13:08:37.405011+00:00 app[web.1]: [4] * Process workers: 2
2018-10-18T13:08:37.405034+00:00 app[web.1]: [4] * Preloading application
2018-10-18T13:08:44.984627+00:00 app[web.1]: [4] ! Unable to load application: NameError: uninitialized constant CarrierWave::Storage::Fog
2018-10-18T13:08:44.984844+00:00 app[web.1]: bundler: failed to load command: puma (/app/vendor/bundle/ruby/2.4.0/bin/puma)
2018-10-18T13:08:44.985001+00:00 app[web.1]: NameError: uninitialized constant CarrierWave::Storage::Fog