"SystemTimer"的未定义方法"name":String

sne*_*lan 12 ruby ruby-on-rails ruby-on-rails-2

我在使用旧的Ruby on Rails 2应用程序时遇到问题,该应用程序在一年内没有工作.

我正试图rake test:functionals在我的项目目录的根目录中运行,但是我得到了undefined method 'name' for "SystemTimer":String.

我已经粘贴了我认为与此问题相关的所有内容:http: //pastebin.com/NgBvystZ

此外,当我自己运行rake时,我 Errors running test:units! 不知道如何调试它.

我复制并粘贴了一些我认为对理解这个问题有用的东西.非常感谢您的时间.谢谢.

Ben*_*Lee 54

这是大于1.3.7的RubyGems版本与小于2.3.12的Rails版本之间的不兼容性.有几种方法可以解决这个问题.

  1. 使用Bundler

    Bundler 易于安装,解决了这个问题,并且还具有许多其他优点.我强烈推荐它.

  2. 升级到Rails 2.3.12或更高版本

    Rails 2.3.12修复了RubyGems 1.8.5的兼容性问题(参见发布报告).

  3. 降级到RubyGems 1.3.7

    除非你别无选择,否则我不会推荐这个.使用此命令:gem update --system 1.3.7.此外,版本1.7.2具有部分兼容性(它将运行,但冻结宝石将失败,可能还有其他问题).

  • 你是对的.这是解决方案.我必须找到与ruby一起使用的正确软件包,因为RoR开发人员在任何意义上都不是向后兼容的粉丝.我设法找到一个包含版本号的旧包列表并且保存了我. (2认同)