gpt4 book ai didi

ruby-on-rails - 启动 Rails 2 应用程序时为 "uninitialized constant Gem"或 "Rails"

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:40 27 4
gpt4 key购买 nike

我有一个正在尝试运行的使用 Rails 2.3.4 的应用程序。无论我如何启动它,通过使用脚本/控制台或脚本/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 输出类似的错误(已编辑):

Loading development environment (Rails 2.3.4)/var/www/sites/example.com/releases/20110726061310/config/environment.rb:12:NameError: uninitialized constant Gem/usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:254:in `require': no such file to load -- console_app (LoadError)        from /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:254:in `load_modules'        from /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:252:in `each'        from /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:252:in `load_modules'        from /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb/init.rb:21:in `setup'        from /usr/local/rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/irb.rb:54:in `start'        from /usr/local/rvm/rubies/ree-1.8.7-2011.03/bin/irb:17

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

ruby --debug script/ferret_server -e production start

输出以下错误:

Exception `NameError' at ./script/../vendor/plugins/acts_as_ferret/lib/../../../../config/environment.rb:12 - uninitialized constant Gemuninitialized constant Gem

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

类 GemDependency 的父类(super class)不匹配

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

require 'thread'if Gem::VERSION >= "1.3.6"   module Rails    class GemDependency      def requirement        r = super        (r == Gem::Requirement.default) ? nil : r        end      end    end  endrequire File.join(File.dirname(__FILE__), 'boot')

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

最佳答案

尝试放置:

require 'rubygems'

就在 require 'thread' 之后

关于ruby-on-rails - 启动 Rails 2 应用程序时为 "uninitialized constant Gem"或 "Rails",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6826182/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com