【问题标题】:Missing a constant on load.. how can i get around this?缺少负载常数..我怎样才能解决这个问题?
【发布时间】:2010-11-29 16:02:41
【问题描述】:

我刚刚为一个 rails 2.3.5 Spree 项目安装了 bundler。

这样做之后,我意识到当我去script/console时遇到了这个错误:

Loading development environment (Rails 2.3.5)
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:105:in `const_missing':NameError: uninitialized constant Rails::Plugin::OpenID

我的 Gemfile :

gem 'ruby-openid', '2.1.8'

我运行bundle install 没有错误。

>> gem list -d ruby​​-openid

*** LOCAL GEMS ***

ruby-openid (2.1.8, 2.1.2)
Author: JanRain, Inc
Homepage: http://github.com/openid/ruby-openid
Installed at (2.1.8): /Library/Ruby/Gems/1.8
             (2.1.2): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

完整的回溯

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:105:in `const_missing': uninitialized constant Rails::Plugin::OpenID (NameError)
    from /Users/macuser/Sites/test/spree/vendor/plugins/open_id_authentication/init.rb:16:in `evaluate_init_rb'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:182:in `call'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:182:in `evaluate_method'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:166:in `call'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:90:in `run'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:90:in `each'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:90:in `send'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:90:in `run'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:276:in `run_callbacks'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:51:in `send'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:51:in `run_prepare_callbacks'
    from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:631:in `prepare_dispatcher'
    from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:185:in `process'
    from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send'
    from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
    from ./script/../config/../lib/spree/initializer.rb:90:in `run'
    from /Users/macuser/Sites/test/spree/config/environment.rb:26
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
    from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:84
    from script/server:3:in `require'
    from script/server:3

关于现在要检查什么的任何线索?先谢谢了!

【问题讨论】:

  • 完整的堆栈跟踪可能更有帮助...

标签: ruby-on-rails constants bundle requirements bundler


【解决方案1】:

我之前已经看到过这种说法——我认为这可能与 Gemfile 中的 require 语法有关...

我刚刚一起破解了一个 Gemfile,然后扔了...

gem "ruby-openid", :require => 'openid'

能够在公认缩小的测试环境中启动控制台...

【讨论】:

  • 难以置信!有效! “要求”甚至做什么?太棒了,我感激不尽。
  • 根据捆绑程序文档 - 您告诉捆绑程序需要一个与 gem 名称不同的文件...这意味着它加载 openid.rb 而不是 ruby​​-openid.rb...
猜你喜欢
  • 1970-01-01
  • 2013-10-24
  • 1970-01-01
  • 2019-04-10
  • 1970-01-01
  • 2012-03-16
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多