Проблема с require rack / openid в Rails 3 [нативная работа требует правильной работы] - PullRequest
7 голосов
/ 23 февраля 2010

Я устанавливаю плагин 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.

Ответы [ 3 ]

7 голосов
/ 06 марта 2010

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

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

Bundler, похоже, не понимает требования к самоцвету, поэтому вам не хватает самоцвета rack-openid

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

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

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

1 голос
/ 03 марта 2010

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

У меня есть плагины (ТОЛЬКО)
authlogic_openid от: http://github.com/binarylogic/authlogic_openid
open-id от: 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)
ruby-openid (2.1.7)

В среде (ТОЛЬКО) :
config.gem "authlogic"

GL!

0 голосов
/ 23 февраля 2010
gem "rack-openid", :require => "rack/openid"
...