Как использовать туман с CarrierWave только в производстве - программирование

Как использовать туман с CarrierWave только в производстве

Я использую Heroku и S3 с моим Rails-приложением. У меня есть только туманный камень, установленный в режиме производства, потому что мой локальный компьютер - это кусок хлама. В любом случае, он отлично работает в этом направлении и оказался лучшим решением, чем вытягивание моих волос, чтобы получить туман, установленный локально, но теперь мне нужно переключить файл Uploader на использование localhost, а затем переключить его, чтобы сделать обязательство.

Было бы неплохо иметь возможность использовать файл локально, а затем туман в рабочем режиме без ручного переключения туда и обратно. Кто-нибудь имеет какие-либо предложения о том, как это сделать?

Большое спасибо заранее.

4b9b3361

Ответ 1

Это довольно легко. Вы должны определить его в файле конфигурации. Но не определяйте хранилище в своих моделях, так как это переопределит настройки из файла конфигурации.

# sample config/initializers/carrierwave.rb
CarrierWave.configure do |config|

  if Rails.env.development? || Rails.env.test?
    config.storage = :file
  else
    config.fog_credentials = {
      :provider               => 'AWS',
      :aws_access_key_id      =>  'some_access_key_id',
      :aws_secret_access_key  => 'some_secret_key',
      :region                 => 'eu-west-1'
    }
    config.storage = :fog
    config.fog_directory = 'bucket_name'
  end
end