Не удалось обнаружить грабли, NameError: неопределенная локальная переменная или метод `config 'для main: Object - PullRequest
1 голос
/ 18 апреля 2020

Я пытаюсь развернуть свое приложение в Heroku. (Я никогда не делал это раньше). Сначала у меня была база данных sqlite, но потом я обнаружил, что для этого вам нужна база данных postgres. Так что я все включил, и теперь, когда я пытаюсь запустить git push heroku master, я получаю эту ошибку. `не мог обнаружить грабли

Когда я попытался запустить bundle exec rake -P, все, казалось, работало просто отлично.

Мои журналы ошибок:

remote:  !     Could not detect rake tasks
remote:  !     ensure you can run `$ bundle exec rake -P` against your app
remote:  !     and using the production group of your Gemfile.
remote:  !     rake aborted!
remote:  !     NameError: undefined local variable or method `config' for main:Object
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/config/application.rb:6:in `<top (required)>'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/Rakefile:4:in `require_relative'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/Rakefile:4:in `<top (required)>'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/rake_module.rb:29:in `load'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/rake_module.rb:29:in `load_rakefile'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:703:in `raw_load_rakefile'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:104:in `block in load_rakefile'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:103:in `load_rakefile'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:82:in `block in run'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:80:in `run'
remote:  !     /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
remote:  !     ./vendor/bundle/bin/rake:29:in `load'
remote:  !     ./vendor/bundle/bin/rake:29:in `<main>'

Я вошел в настройки herokue и установил RAILS_SERVE_STATIC_FILES на true

У меня есть драгоценный камень pg мой гемфайл (только что указано как gem 'pg')

Мой файл БД

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  host: 127.0.0.1
  adapter: postgresql
  encoding: unicode
  database: myDatabase_development
  username: username
  timeout: 5000
  pool: 5

test:
  adapter: postgresql
  encoding: unicode
  database: myDatabase_testing
  username: username
  timeout: 5000


production:
  url:  <%= ENV["DATABASE_URL"] %>
  pool: <%= ENV["DB_POOL"] || ENV['RAILS_MAX_THREADS'] || 5 %>
  database: myDatabase_production
  username: username
  timeout: 5000
  pool: 5

Мой рабочий файл

Rails.application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.public_file_server.enabled = true
  config.log_level = :debug
  config.log_tags = [ :request_id ]
  config.action_mailer.perform_caching = false
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new

  if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger = ActiveSupport::TaggedLogging.new(logger)
  end
  config.active_record.dump_schema_after_migration = false
end

Когда я запускаю RAILS_ENV=production bundle exec rake assets:precompile, (думая, что я есть проблема с предварительной компиляцией). все компилируется так, как должно.

Наконец, мой application.rb содержит только эту информацию.

require_relative 'boot'

require 'csv'
require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module DowntownInventoryApp
  class Application < Rails::Application

    config.assets.initialize_on_precompile = false
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration should go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded.
  end
end

У кого-нибудь есть идеи, что я здесь упускаю или делаю неправильно?

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