Вопрос: Монгоид :: Ошибки :: NoSessionConfig в rails consolse


Я клонировал rails app (наш проект компании), а затем установил все, что связано с монго-дбом и мангоидным камнем. Затем я запускаю rake db: setup, а затем rails s. Он отлично работает, я могу получить доступ ко всем сайтам и делать все. Но у меня проблема в консоли rails.

Всякий раз, когда я это делаю:

рельсы c

тогда

User.first

Я получу эту ошибку

Загрузка среды разработки (Rails 4.1.1) irb (main): 001: 0>   User.first Mongoid :: Errors :: NoSessionConfig: Проблема: Нет   конфигурацию можно найти для сеанса с именем «default». Резюме:
  При попытке создать новый сеанс Mongoid не смог найти   Конфигурация сеанса для имени: 'default'. Это необходимо в   чтобы узнать хост, порт и параметры, необходимые для подключения.   Разрешение: дважды проверьте свой файл mongoid.yml, чтобы убедиться, что   session, что для «default» существует конфигурация. Если у вас есть   задайте конфигурацию программно, убедитесь, что «default» существует в   хэш конфигурации. из   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/sessions/factory.rb:27:in    create' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/sessions.rb:65:in with_name 'от   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/sessions.rb:105:in    mongo_session' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/sessions.rb:121:in сбор "от   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/sessions/options.rb:161:in    method_missing' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/contextual/mongo.rb:263:in инициализировать 'из   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/contextual.rb:53:in    new' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/contextual.rb:53:in create_context 'из   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/contextual.rb:35:in    context' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/contextual.rb:20:in сначала 'от   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mongoid-4.0.0.beta2/lib/mongoid/findable.rb:122:in    first' from (irb):1 from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/console.rb:90:in начать с   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/console.rb:9:in    start' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:69:in консоль "от   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in    run_command!' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands.rb:17:in ' из   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in require' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:inблок в требовании 'от   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in load_dependency' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:inтребовать от   / Users / rizalmuthi / Документы / Sites / РАБОТА / tapway / бен / Рельсы: 8: в <top (required)>' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:inзагрузить 'из   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in block in load' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:inload_dependency 'из   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in load' from /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in требовать от   /Users/rizalmuthi/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in    require' from -e:1:in«IRB (основной): 002: 0>

И FYI, это mongoid.yml, который я создал с помощью run

rails g mongoid: config

mongoid.yml

development:
  sessions:
    default:
      database: mongo_demo_development
    hosts:
      - localhost:27017
    options:        
 options:

test:
  sessions:
    default:
      database: mongo_demo_test
      hosts:
        - localhost:27017
      options:
        consistency: :strong      
        max_retries: 1
        retry_interval: 0

Я искал по всему Google и некоторым блогам, не мог понять, как это исправить. Кроме того, мы не используем Rspec tho.


4


источник


Ответы:


В последней версии mongoid -5.0.0 вы можете просто решить, поставив ниже код в application.rb

 config.generators do |g|
   g.orm :mongoid
 end

5



измените файл config / application.rb:

замените его Bundler.require (* Rails.groups)

к нему Bundler.require (* Rails.groups (активы:% w (тест разработки)))


14



В config/application.rb изменение

Bundler.require(*Rails.groups)

чтобы:

Bundler.require(:default, Rails.env)

Rails пытается загружать группу драгоценных камней по окружающей среде, а запас config/mongoid.yml файл, который вы получаете при запуске rails g mongoid:config только дает вам test а также development Пространство имен. Несмотря на то, что вы работаете только с развитием, он смотрит на все группы. Если вы добавите пространство имён производства в файл yml, оно будет загружено, но мой ответ выше будет работать без необходимости этого.


3



Просто убедитесь, что при инициализации приложения вы делаете следующее (в консоли Rails)

Mongoid.load!("path/to/your/mongoid.yml")

Для получения дополнительной информации посетите http://mongoid.org/en/mongoid/docs/installation.html


3



С MongoId версии 5.x вы измените конфигурацию в приложении Rails: Файл: application.rb

# Add line.
config.generators do |g|
  g.orm :mongoid
end

Я был настроен, и он работал в консоли rails. См. Больше на: https://docs.mongodb.com/ecosystem/tutorial/mongoid-installation/#rails-applications


1



может быть Проблема в файле gem, вы не упомянули о версии монгоидного драгоценного камня. в изменении файла gem gem "mongoid" в gem "mongoid" , '~> 4.0.2' и запустить пакет перезапустите сервер и консоль.


0