Не удается запустить сервер rails после добавления конфигурации carrierwave-AWS - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу поместить свой аватар в aws для использования в приложении Heroku.Моя установка кажется правильной, но сервер rails не запускается.

Я обновил мой carrierwave.rb и avatar_uploader, а также мои самоцветы

carrierwave.rb



 CarrierWave.configure do |config|
          config.fog_credentials = {
              :provider => 'AWS',
              :aws_access_key_id => ENV['aws_access_key_id'],
              :aws_secret_access_key => ENV['aws_secret_access_key'],
              :region => 'us-east-2'
          }
          if Rails.env.test? || Rails.env.cucumber?
            cpmfig.storage            = :file
            config.enable_processning = false
            config.root               ="#{Rails.root}/tmp"
          else
            config.storage = :fog
          end
        config.cache_dir              = "#{Rails.root}/tmp/uploads"
        config.fog_directory          = ENV['s3_bucket_name']

    end

module Carrierwave
  module Minimagick
    def quality(percentage)
      img.quality(percentage.to_s)
      img = yield(img) if block_given?
      img
    end
  end
end



avatar_uploader.rb

class AvatarUploader < CarrierWave::Uploader::Base
   include CarrierWave::MiniMagick
   include Sprockets::Rails::Helper
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
   version :thumb do
     process resize_to_fit: [250, 250]
   end
   def extension_whitelist
     %w(jpg jpeg gif png)
   end

end

gemfile

gem 'fog'
gem 'fog-aws'
gem 'carrierwave'
gem 'mini_magick'

Когда я запускаю сервер, я получаю ошибку:

$elandro-MBP:prjectAlpha etiennelandro$ rails s
Traceback (most recent call last):
    29: from bin/rails:4:in `<main>'
    28: from bin/rails:4:in `require'
    27: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands.rb:16:in `<top (required)>'
26: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/command.rb:44:in `invoke'
    25: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/command/base.rb:63:in `perform'
    24: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
23: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
    22: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
    21: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands/server/server_command.rb:130:in `perform'
20: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands/server/server_command.rb:130:in `tap'
    19: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands/server/server_command.rb:133:in `block in perform'
    18: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands/server/server_command.rb:133:in `require'
17: from /Users/etiennelandro/Documents/prjectAlpha/config/application.rb:9:in `<top (required)>'
    16: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler.rb:114:in `require'
    15: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `require'
14: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `each'
    13: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `block in require'
    12: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `each'
11: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:81:in `block (2 levels) in require'
    10: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:81:in `require'
     9: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog.rb:12:in `<top (required)>'
8: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog.rb:12:in `require'
     7: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers.rb:9:in `<top (required)>'
     6: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers.rb:9:in `require'
5: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers/aws.rb:4:in `<top (required)>'
     4: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers/aws.rb:5:in `<module:Fog>'
     3: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers/aws.rb:7:in `<module:AWS>'
2: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers/aws.rb:7:in `extend'
     1: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-core-2.1.2/lib/fog/core/provider.rb:13:in `extended'
/Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-core-2.1.2/lib/fog/core/provider.rb:13:in `[]=': no implicit conversion of Symbol into Integer (TypeError)

Я пытался проверить журнал, но я не очень понял в нем, за исключением того, что что-то не так с приложением rb, строка 9. Application.rb, строка 9: Bundler.require(*Rails.groups)

Можете ли вы увидеть, что я делаю не так, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Это сработало для меня, очень просто и пока без проблем

require 'carrierwave/storage/fog'

CarrierWave.configure do |config|
  config.fog_provider = 'fog/aws'
  config.fog_credentials = {
      provider:              'AWS',
      aws_access_key_id:     Rails.application.secrets.aws_access_key_id,
      aws_secret_access_key: Rails.application.secrets.aws_secret_access_key,
      region:                'us-east-2',
  }
  config.fog_directory  = Rails.application.secrets.s3_bucket_name
end
0 голосов
/ 29 апреля 2019

Почему вы не используете рельсы activestorage?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...