rails -v在使用rvm时显示错误的版本

时间:2012-05-01 21:53:31

标签: ruby-on-rails-3 rvm

我刚刚尝试使用RVM使用以下命令更新到Rails 3.1.3:

  

rvm install ruby​​-1.9.3-p0

     

rvm - 默认使用ruby-1.9.3-p0

如果我查询当前版本或ruby:

  

ruby​​ -v

我得到了正确的版本:ruby 1.9.3p0(2011-10-30修订版33570)[x86_64-darwin10.8.0]

然后更新宝石:

  

gem update --system

这给了我1.8.24版本

然后我创建我的gemset并将其设置为我的默认值:

  

rvm ruby​​-1.9.3-p0@rails313 --create --default

最后安装Rails gem:

  

gem install rails

当我查询rails的版本时:

  

rails -v

我得到Rails 3.0.11 ...我的旧版Rails

如果我尝试启动Rails服务器

  

rails s

我收到一个巨大的错误:

  

.rvm / gems / ruby​​-1.9.3-p0 @ rails313 / gems / activesupport-3.0.11 / lib / active_support dependencies.rb:239:in`require':dlopen(/Users/lss_dev/.rvm/ gems/ruby-1.9.3-p0@rails313/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle,9):找不到符号:_ruby_current_thread(LoadError)

有很多关于依赖关系的抱怨。

我的gemfile.lock确实包含以下块:

  

rails(3.0.11)

  actionmailer (= 3.0.11)

  actionpack (= 3.0.11)

  activerecord (= 3.0.11)

  activeresource (= 3.0.11)

  activesupport (= 3.0.11)

  bundler (~> 1.0)

  railties (= 3.0.11)

这是否与它有关,或者我是否应该触摸gemfile.lock文件??

我正在使用rvm版本1.10.0,任何帮助将不胜感激

2 个答案:

答案 0 :(得分:6)

回答我自己的(扩展)问题...

删除gemfile.lock文件允许我运行

  

捆绑安装

确保我的Rails gem设置为正确的版本(3.1.3),这有效。我遇到的问题是当我启动我的rails服务器时出现以下浏览器错误

未定义的方法`Conside_all_requests_local'for ActionController :: Base:Class

最初我认为这是由于Rails 3.1中的一些路由更改。*正如我在application_controller.rb文件中发现的那样,我处理了404错误,并且有以下块:

unless ActionController::Base.consider_all_requests_local
   rescue_from Exception, :with => :render_404
end
  

的ActionController :: Base.consider_all_requests_local

现已弃用并替换为:

  

Rails.application.config.consider_all_requests_local

诀窍。

感谢您的帮助,我希望将来可以帮助某人

答案 1 :(得分:0)

您可能必须交换rvm / ruby​​的版本然后安装。 这可能有用:https://rvm.io/gemsets/basics/