2012-02-20 80 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