Проблема с требованием Rack/OpenID в Rails 3 [родное требование работает правильно]

StackOverflow https://stackoverflow.com/questions/2316729

Вопрос

Я устанавливаю плагин open_id_authentication и получаю следующую ошибку:

/usr/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:167:in `require': no such file to load -- rack/openid (LoadError)

когда я пытаюсь начать rails serverНа самом деле, в моей системе установлен Rack-openid, и я могу загрузить его из irb:

irb(main):001:0> require 'rack/openid'
=> true

Я попытался добавить хак в Gemfile, как это сделал с Ruby-openid, но это не помогло:

gem "ruby-openid", :require => "openid"
gem "rack-openid", :require => "rack/openid"

я тоже пробовал

gem "ruby-openid", :require => "rack/openid"

но:

/usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.7/lib/bundler/runtime.rb:38:in `require': no such file to load -- rack/openid (LoadError)

В приложении Rails 2.3.5 этой проблемы нет, и я не могу понять, почему это происходит в Rails 3.

Это было полезно?

Решение

Проблема в этом коде в верхней части init.rb плагина.

if Rails.version < '3'
  config.gem 'rack-openid', :lib => 'rack/openid', :version => '>=0.2.1'
end

Бандлер, похоже, не учитывает требования к драгоценным камням, поэтому вам не хватает rack-openid драгоценный камень.

Решение состоит в том, чтобы добавить следующее в ваш Gemfile на месте ruby-openid. (rack-openid зависит от ruby-openid но gems об этом знает и установит при необходимости)

gem 'rack-openid', '>=0.2.1', :require => 'rack/openid'

Не забудь бежать bundle install после обновления вашего Gemfile.

Другие советы

Я понимаю вашу проблему, поскольку Ruby openID может работать очень нестабильно по небольшим причинам.Я установил его на работе, но не могу установить его дома!Приведу свой рабочий рецепт:

у меня есть Плагины (ТОЛЬКО)
authlogic_openid из: http://github.com/binarylogic/authlogic_openid
открытый идентификатор из: http://github.com/senthilnambi/open-id

А Драгоценные камни:
аутлогика (2.1.3)
аутлогический-оид (1.0.4)
открытый идентификатор (0.0.1)
стойка (1.0.1)
стойка-openid (1.0.1)
рубин-опенид (2.1.7)

В окружающая среда (ТОЛЬКО):
config.gem "аутлогика"

ГЛ!

gem "rack-openid", :require => "rack/openid"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top