Отсутствует постоянная нагрузка .. как я могу обойти это? (Rails :: Plugin :: OpenID) - PullRequest
0 голосов
/ 29 декабря 2010

У меня есть проект Rails 2, который я пытаюсь обновить до Rails 3, но у меня возникают некоторые проблемы с компоновщиком.

Когда я запускаю "rake", он отлично запускает тесты.Но когда я запускаю "bundle exec rake", он не может найти константу.

Ошибка заключается в следующем:

/Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/dependencies.rb:131:in `const_missing': uninitialized constant Rails::Plugin::OpenID (NameError)
    from /Users/kimptoc/Documents/ruby/borisbikes/borisbikestats.pre3/vendor/plugins/open_id_authentication/init.rb:16:in `evaluate_init_rb'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/callbacks.rb:182:in `call'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/callbacks.rb:182:in `evaluate_method'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/callbacks.rb:166:in `call'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/callbacks.rb:90:in `run'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/callbacks.rb:90:in `each'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/callbacks.rb:90:in `send'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/callbacks.rb:90:in `run'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activesupport-2.3.9/lib/active_support/callbacks.rb:276:in `run_callbacks'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/actionpack-2.3.9/lib/action_controller/dispatcher.rb:51:in `send'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/actionpack-2.3.9/lib/action_controller/dispatcher.rb:51:in `run_prepare_callbacks'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/rails-2.3.9/lib/initializer.rb:631:in `prepare_dispatcher'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/rails-2.3.9/lib/initializer.rb:185:in `process'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/rails-2.3.9/lib/initializer.rb:113:in `send'
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/rails-2.3.9/lib/initializer.rb:113:in `run'
    from /Users/kimptoc/Documents/ruby/borisbikes/borisbikestats.pre3/config/environment.rb:9
    from ./test/test_helper.rb:2:in `require'
    from ./test/test_helper.rb:2

У меня установлены следующие гемы:

$ gem list

*** LOCAL GEMS ***

actionmailer (2.3.9)
actionpack (2.3.9)
activerecord (2.3.9)
activeresource (2.3.9)
activesupport (2.3.9)
authlogic (2.1.3)
bundler (1.0.7)
gravtastic (2.2.0)
linecache (0.43)
mocha (0.9.10)
newrelic_rpm (2.13.4)
parseexcel (0.5.2)
rack (1.1.0)
rack-openid (1.1.1)
rails (2.3.9)
rake (0.8.7)
ruby-debug-base (0.10.5.jb2, 0.10.4)
ruby-debug-ide (0.4.15)
ruby-openid (2.1.8, 2.1.7, 2.0.4)
sqlite3-ruby (1.3.2)

Пакет Gemfile выглядит следующим образом:

source 'http://rubygems.org'

#gem 'rails', '3.0.3'
gem "rails", "2.3.9"
gem "activesupport", "2.3.9"
gem "ruby-openid", "2.1.7", :require => "openid"
#gem "authlogic-oid", "1.0.4"

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3-ruby', :require => 'sqlite3'

gem "authlogic", "= 2.1.3"
gem "newrelic_rpm"
#  gem "facebooker"
gem "parseexcel"
gem 'gravtastic', '= 2.2.0'
gem "rack-openid", '=1.1.1', :require => 'rack/openid'

# not sure what this does...
gem "mocha"

У меня установлены следующие плагины:

2dc_jqgrid      
authlogic_openid    
open_id_authentication  
squirrel

Я вижу подобные вопросы:

Отсутствует константапри загрузке .. как я могу обойти это?

и

Требуется драгоценный камень в Rails 3 Сбой контроллера с "Constant Missing"

Но их решения не подходят для моей ситуации.

Я предполагаю, что проблема связана с плагинами, но мой ruby-fu слишком слаб.

UPDATE

Я подхожу ближе.

Похоже, использование версии плагина authlogic_openid не является текущим маршрутом - поэтому переключились на использование камня authlogic-oid.Также, похоже, имеется старая / другая версия open_id_authentication - обновлена ​​настолько, что.

Теперь трассировка исключения / стека выглядит следующим образом:

/Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/activerecord-2.3.9/lib/active_record/base.rb:1998:in `method_missing': undefined method `openid_required_fields=' for #<Class:0x1036cccb8> (NoMethodError)
    from /Users/kimptoc/Documents/ruby/borisbikes/borisbikestats.pre3/app/models/user.rb:21
    from /Users/kimptoc/.rvm/gems/ruby-1.8.7-p330@p-borisbikestats-pre-rails3/gems/authlogic-2.1.6/lib/authlogic/acts_as_authentic/base.rb:33:in `acts_as_authentic'
    from /Users/kimptoc/Documents/ruby/borisbikes/borisbikestats.pre3/app/models/user.rb:16

Использование этих драгоценных камней сейчас:

authlogic (2.1.6)
authlogic-oid (1.0.4)
rack-openid (1.2.0)
ruby-openid (2.1.8)

Похоже, проблема с загрузкой authlogic-oid / init'd ... Мой Gemfile выглядит так:

gem "ruby-openid", :require => "openid"
gem "authlogic-oid", :require => "authlogic_openid"
gem "authlogic"
gem "rack-openid", :require => 'rack/openid'

Кроме того, вход в систему через app / openid теперь не работает- так что я думаю, мне нужно поиграть с этими версиями этих драгоценных камней еще немного ...

Заранее спасибо, Крис

1 Ответ

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

(Интересное название проекта!)

По трассировке стека я думаю, что плагин open_id_authentication не совместим с Rails 2, и для его работы потребуется Rails 3.

Если вы переходите на Rails 3, я бы довел проект до того момента, когда вы используете новые версии Active * и Rails, прежде чем пытаться исправить только один плагин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...