Проблема с require rack/openid в Rails 3 [native require work properly]
Я устанавливаю плагин 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
Я попытался добавить hack в 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.
3 ответа:
Проблема заключается в том, что этот код находится в верхней части init плагина.rb
if Rails.version < '3' config.gem 'rack-openid', :lib => 'rack/openid', :version => '>=0.2.1' end
Bundler, похоже, не улавливает требования gem, поэтому вы пропускаете
rack-openid
gem.Решение состоит в том, чтобы добавить следующее к вашему
Gemfile
вместоruby-openid
. (rack-openid
зависит отruby-openid
, но gems знает об этом и установит его по мере необходимости)gem 'rack-openid', '>=0.2.1', :require => 'rack/openid'
Не забудьте запустить
bundle install
после обновления вашего Gemfile.
Я понимаю вашу проблему, так как ruby openID может быть очень неустойчивым по небольшим причинам.. Я установил его на работе, но не могу получить его ПРЯМО ДОМА! Я приведу свой рабочий рецепт:
У меня есть плагины (только)
authlogic_openid from: http://github.com/binarylogic/authlogic_openid
открытого идентификатор: http://github.com/senthilnambi/open-idСамоцветы :
authlogic (2.1.3)
authlogic-oid (1.0.4)
openid (0.0.1)
стойка (1.0.1)
rack-openid (1.0.1)
Рубин-openid (2.1.7)В среде (только):
конфиг.драгоценный камень "authlogic"ГЛ!