2011-05-02 114 views
1

我正处于Ruby on Rails编码过程中,在最近一个小时内运行了几个rails生成方法,突然一个新的生成命令抛出错误消息。当我尝试通过rake运行我的测试时出现类似的错误。然后在命令行中输入“rails”。然后对于“宝石”命令相同的错误。Rails/Gem命令突然抛出错误

所以我想,不知何故,我打破了我的“rubygems”宝石文件?这是令人担忧的,因为我在卢西丁编码,并且坦白地说,远不及它!

任何人都可以帮助解释可能发生了什么,以及最好的解决方案可能是什么?现在,我会尝试重新安装Ruby,但这是一个昂贵的解决方法,我想避免多次执行。

错误堆栈跟踪如下所示:

C:\Users\Ben>rails 
C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127:in `load_gems_in': 
private method `load' called for Gem::Specification:Class (NoMethodError) 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/deprecate.rb:38:in `skip_during' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:126:in `load_gems_in' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:125:in `each' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:125:in `load_gems_in' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:122:in `reverse_each' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:122:in `load_gems_in' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:321:in `refresh!' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:97:in `initialize' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:1051:in `new' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:1051:in `source_index' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:243:in `activate_dep' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:236:in `activate' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:1307:in `gem' 
from C:/dev/lang/Ruby187/bin/rails:18 

我的宝石文件(以上项目)是:

source 'http://rubygems.org' 
gem 'rails', '3.0.7' 
gem 'sqlite3' 
gem "jquery-rails" 

虽然在所有命令行实例出现错误。

[编辑]在这个阶段,我已经完全重新安装红宝石和铁轨,问题已经消失。尽管如此,我仍然保留旧的安装目录,以防万一我们能够解决这个问题的底部,或者万一它再次发生!

[第二编辑]新的安装,机器重启后,创业板再次启动失败,并且是的RubyMine说,它不能找到任何宝石(甚至RubyGems的):

C:\Users\Ben>gem 
C:/dev/lang/Ruby187/lib/ruby/1.8/optparse.rb:1433:in `private': undefined method `search' for class `OptionParser' (NameError) 
from C:/dev/lang/Ruby187/lib/ruby/1.8/optparse.rb:1433 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/command.rb:7 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:7 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:7 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
from C:/dev/lang/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
from C:/dev/lang/Ruby187/bin/gem:9 

也许是的RubyMine拧安装?还是Windows 7?我的核心开发语言永远不会出现问题 - 非常令人沮丧!

+0

轨和宝石命令在其他项目环境正常工作?你能否在另一个目录中创建新的rails项目?将您的Gemfile内容添加到问题文本。 – crsde 2011-05-02 06:58:33

+0

rails和gem命令在所有环境中都失败(通过Rubymine和命令行调用)。因为所有的命令都会抛出一个如上所述的错误,所以不能做任何与rails相关的操作。 – Phantomwhale 2011-05-02 07:53:53

回答

0

我的预感是正确的 - RubyMine应该是责怪......当然也是用户!在我的控制器中重构了一些相当常见的方法名(例如将“show”更改为“index”),并最终重构为Ruby 1.8标准库文件!

需要仔细检查什么重构是干什么的,前进,并尝试将其限制只是我的项目,而不是整个SDK :)