rails生成脚手架错误 - 使用错误的ruby版本

时间:2012-02-20 15:42:42

标签: ruby-on-rails ruby

我在OSX Lion上。 我更新了我的xCode。 我安装了git。 我安装了curl。 我安装了rvm。 我使用rvm安装了ruby 1.9.3和rails。

我创建了一个新应用。 当我运行rails generate时,我收到以下错误:

$ 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

好像不应该看那个目录,因为它是ruby 1.8。 (也许这是OSX安装的默认版本?)

非常感谢任何帮助解决此问题。

2 个答案:

答案 0 :(得分:0)

第一步是启动一个新的shell会话。然后检查实际使用的ruby版本ruby -v,并且正在使用rvm中的一个版本。如果两者不同,您可能会忘记或严重配置.bashrc / .zshrc

我总是在rvm中遇到这样的错误。我知道很多人对rvm感到满意,但如果它一直困扰着你,我建议你转到ruby-build / rbenv。几个月前我换了一个问题,从来没有遇到过一个问题,而在我看来,这个问题就更少了。

答案 1 :(得分:0)

你有可能告诉RVM使用ruby 1.9.3 ..

如果您使用RVM我建议为项目创建.rvmrc文件..

echo 'rvm use 1.9.3@your-project-gemset --create' > ./.rvmrc

然后当你cd进入项目目录时,RVM会自动选择正确的红宝石:)

但是,如果您想将系统的默认ruby更改为1.9.3,您也可以这样做:

rvm use 1.9.3 --default