【问题标题】:"uninitialized constant Gem" or "Rails" when starting Rails 2 app启动 Rails 2 应用程序时出现“未初始化的常量 Gem”或“Rails”
【发布时间】:2011-10-13 03:52:16
【问题描述】:

我有一个使用 Rails 2.3.4 的应用程序,我正在尝试运行它。无论我如何启动它,通过使用 script/console 或 script/ferret_server,它总是归结为相同的错误:

未初始化的常量 Gem

当我在网上搜索时,我只发现有类似问题的人在 Gem 类中找到了一些东西。但就我而言,Gem 根本不存在。

我在 Ubuntu 上运行 Ruby。我尝试使用 APT 附带的 Ruby 版本和 RVM 的更新版本。没有任何帮助。

知道是什么原因造成的以及如何解决吗?提前致谢!

根据评论者的要求提供一些额外的细节:

ruby -v 的输出:

ruby 1.8.7 (2011-02-18 patchlevel 334) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2011.03

gem -v 的输出:

1.8.6

调用ruby script/console 会输出类似的错误(已编辑):

加载开发环境(Rails 2.3.4) /var/www/sites/example.com/releases/20110726061310/config/environment.rb:12:NameError:未初始化的常量 Gem /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:254:in `require': 没有要加载的文件 -- console_app (LoadError) 来自 /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:254:in `load_modules' 来自 /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:252:in `each' 来自 /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:252:in `load_modules' 来自 /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:21:in `setup' 来自 /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb.rb:54:in `start' 来自 /usr/local/rvm/rubies/ree-1.8.7-2011.03/bin/irb:17

我正在尝试调用 Ferret 服务器以允许乘客连接到它,使用以下命令:

ruby --debug script/ferret_server -e production start

输出以下错误:

./script/../vendor/plugins/acts_as_ferret/lib/../../../../config/environment.rb:12 处的异常 `NameError' - 未初始化的常量 Gem 未初始化的常量 Gem

或者,调用bundle exec ruby --debug script/ferret_server -e production start 会输出以下错误:

superclass mismatch for class GemDependency

请注意,我在config/environment.rbRails::Initializer.run do |config| 行上方添加了以下内容:

需要'线程' 如果 Gem::VERSION >= "1.3.6" 模块导轨 类 GemDependency 定义要求 r = 超级 (r == Gem::Requirement.default) ?无:r 结尾 结尾 结尾 结尾 需要 File.join(File.dirname(__FILE__), 'boot')

删除上面提到的行会产生uninitialized constant Rails 错误。

【问题讨论】:

  • 我认为如果您在启动脚本/控制台时添加完整的错误消息,人们会更容易帮助您。
  • 请包含ruby -vgem -vscript/console的输出
  • 感谢您的关注。我在原始帖子中添加了更多详细信息。
  • environment.rb 中的第 12 行是什么?

标签: ruby-on-rails ruby rvm


【解决方案1】:

试试看:

require 'rubygems'

就在require 'thread'之后

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多