Подтвердить что ты не робот

Получение config.eager_load равно нулю при попытке запуска рельсов c в тесте

Я пытаюсь запустить консоль рельсов (4.1.2)

rails c RAILS_ENV=test

И я получаю это:

> config.eager_load is set to nil. Please update your
> config/environments/*.rb files accordingly:
> 
>   * development - set it to false   * test - set it to false (unless
> you use a tool that preloads your test environment)   * production -
> set it to true
> 
> /Users/xxxxxx/.rvm/gems/ruby-2.2.2/gems/activerecord-4.1.12/lib/active_record/connection_adapters/connection_specification.rb:257:in
> `resolve_symbol_connection': 'RAILS_ENV=test' database is not
> configured. Available: ["development", "test", "production"]
> (ActiveRecord::AdapterNotSpecified)

Но в моем test.rb у меня есть config.eager_load = false, а мой database.yml в порядке (я бежал rake db:schema:load RAILS_ENV=test без проблем.

Как я могу это решить?

4b9b3361

Ответ 1

Вам нужно объявить env, прежде чем запускать команды:

RAILS_ENV=test bundle exec rails c

Я получаю тот же вывод на своем компьютере:

> bundle exec rails c RAILS_ENV=test                                                                                                               [email protected]
config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly:

  * development - set it to false
  * test - set it to false (unless you use a tool that preloads your test environment)
  * production - set it to true

но когда я запускаю, как было предложено:

> RAILS_ENV=test bundle exec rails c                                                                                                               [email protected]
Loading test environment (Rails 4.2.3)

Ответ 2

Как для систем Windows:

  • Это должно сделать:

    rails c -e test
    
  • Или сначала установите переменную RAILS_ENV:

    set RAILS_ENV=test
    rails c
    

Ответ 3

В Windows есть сбой с RAILS_ENV. Если вы запустите

SET RAILS_ENV=development<SPACE>   <- with a space symbol after word "development"

то вы получите сообщение об ошибке:

config.eager_load is set to nil. Please update your config/environments/*.rb fil es accordingly:

при выполнении rails server webrick.

Итак, убедитесь, что вы вводите тип без конечного пробела (и без кавычек)

SET RAILS_ENV=development<ENTER>

То же самое относится ко всем средам: тестированию, производству и разработке.

Ответ 4

Убедитесь, что у вас есть

  • production.rb

  • development.rb

  • test.rb

файлы в папке config/средах/.

Ответ 5

Необходимо установить

config.eager_load = false

для config/environment/development.rb и test.rb или = true для production.rb (по умолчанию)