2011-05-02 111 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 :)