2012-02-20 115 views
0

我在OSX Lion上。 我更新了我的xCode。 我安裝了git。 我安裝了捲曲。 我安裝了rvm。 我使用rvm安裝了ruby 1.9.3和rails。rails生成腳手架錯誤 - 使用錯誤的ruby版本

我創建了一個新的應用程序。 當我運行軌道產生,我得到以下錯誤:

$ rails generate 
/usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:86:in `load_specification': private method `specification_version=' called for #<Gem::Specification:0x33a22c> (NoMethodError) 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/specification.rb:401:in `initialize' 
    from (eval):3:in `load_specification' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:121:in `eval' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:86:in `load_specification' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:121:in `load_gems_in' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:120:in `load_gems_in' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:75:in `from_gems_in' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:47:in `from_installed_gems' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:109:in `source_index' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:187:in `activate' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:66:in `active_gem_with_options' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:59:in `require_gem' 
    from /usr/local/bin/rails:17 

現在看來似乎不應該在該目錄中尋找,因爲它是紅寶石1.8。 (也許這是與OSX安裝的默認版本?)

任何幫助解決此問題,非常感謝。

+2

您是否驗證過使用的紅寶石? 'ruby -v' &&'gem -v' – shingara 2012-02-20 15:44:22

回答

0

第一步是啓動一個新的shell會話。然後檢查實際使用的是哪個版本的紅寶石ruby -v,並且一個rvm表示正在使用。如果兩者不同,您可能忘記了,或者對您的.bashrc/.zshrc進行了嚴重配置。

我總是有這樣的錯誤與rvm。我知道很多人對rvm感到滿意,但是如果它讓你感到困擾,我建議你轉到ruby-build/rbenv。自從我幾個月前切換以來,從來沒有人會遇到過問題,而且從我的角度來看,我的黑魔法更少。

0

可能你還沒有告訴RVM使用Ruby 1.9.3 ..

如果您使用RVM我建議建立該項目的.rvmrc文件..

echo 'rvm use [email protected] --create' > ./.rvmrc

然後當你cd到項目目錄RVM會自動選擇合適的紅寶石:)

但是,如果你想改變你的系統默認的Ruby 1.9.3你也可以這樣做:

rvm use 1.9.3 --default