Я добавил драгоценный камень в рельсы, но он все еще говорит, что драгоценный камень отсутствует? - PullRequest
5 голосов
/ 03 декабря 2010

Я набрал следующее:

gem install omniauth

В моем файле environment.rb у меня также есть:

config.gem "omniauth"

Однако я получаю следующие ошибки:

no such file to load -- omniauth/core
Missing these required gems:
  omniauth

Я в замешательстве: я делаю rake gems: устанавливаю и не получаю сообщение об ошибке (я тоже не получаю сообщение обратно).Но затем я пытаюсь запустить скрипт / сервер, и он говорит, что мне нужно выполнить rake gems: install!

Когда я удаляю config.gem "omniauth" из environment.rb, я получаю следующее:

c:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:443:in `load_missing_constant': unin
itialized constant OmniAuth (NameError)

Ответы [ 5 ]

3 голосов
/ 03 декабря 2010

Теперь, когда Rails 3 использует bundler, вам нужно явно указать, что вам нужен доступ к конкретному гему в вашем приложении. Для этого перейдите в Gemfile (в корневой каталог вашего проекта) и добавьте следующую строку:

gem 'omniauth'

, затем запустите bundle install в директории проекта, и все будет хорошо. bundle install просто гарантирует, что все гемы и зависимости установлены в текущей системе. Удачи!

1 голос
/ 03 января 2011

У меня была такая же проблема. Я подозреваю, что это проблема Rubygems.
Все, что мне нужно было сделать, это перейти на использование rvm .
Он управляет несколькими версиями ruby, включая соответствующие им версии Rubygems.
Он загружает и создает необходимые версии ruby ​​из исходного кода, поэтому сначала обязательно установите все необходимые зависимости.
Это решило проблему для меня.

1 голос
/ 06 декабря 2010

Странно. Не знаком с самим собой, а с двумя вещами, которые вы можете проверить:

Сначала вы можете попробовать

rake gems:install

в корне вашего приложения. Если все зависимости установлены правильно, он не должен ничего сообщать.

Во-вторых, вы можете зайти в консоль и набрать

require 'omniauth'

и

require 'omniauth/core'

Загружается ли модуль? Можете ли вы использовать его с консоли? Иногда ошибки загрузки модулей или зависимостей не отображаются при запуске сервера, но они отображаются в консоли.

1 голос
/ 05 декабря 2010

Предложения:

Сделайте "список драгоценных камней" и посмотрите, указан ли там omniauth. Сделайте "gem env" и посмотрите, где установлены драгоценные камни и являются ли эти места частью дорожек драгоценных камней.

Извините, я не могу вам больше помочь ..

0 голосов
/ 22 августа 2011

У меня была такая же проблема с Rails 2.3.Использование bundler решило эту проблему.

...