ruby​​版本和rvm

问题描述:

我通过rvm的方式安装了ruby 1.9.3。但是,在错误的情况下,我有以下形式ruby​​版本和rvm

/home/railstest/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.0 
/lib/active_record/base.rb:1082:in `method_missing': undefined method 
`mass_assignment_sanitizer=' for ActiveRecord::Base:Class (NoMethodError) 

的消息的问题是:这是什么1.9.1代表什么吗?似乎是一个红宝石版本,但我的是1.9.3。这是否意味着Ruby 1.9.1被调用而不是1.9.3?

RVM列出了以下内容:

rvm list 

rvm rubies 

=* ruby-1.9.3-p392 [ x86_64 ] 

# => - current 
# =* - current && default 
# * - default 

,你在你的路径有1.9.1不意味着你正在使用1.9.1的事实 - 这是Ruby的兼容性版。

+0

因为它是ruby兼容版本而被拒绝投票,并且没有被RVM以任何方式强制执行 – mpapis 2013-03-22 00:06:35

+0

@mpapis如何编辑?我已经相应地更新了答案。 – 2013-03-22 09:47:00

+1

更好 - upvoted! – mpapis 2013-03-22 10:37:35

也许你没有激活该版本。

使用以下命令激活您的版本。

rvm use 1.9.3 

要设置这个版本的默认,运行

rvm use --default 1.9.3 
+0

我添加了关于rvm关于安装红宝石输出的注释。 – Andrew 2013-03-21 16:03:20

路径中的版本组件未指定使用的确切Ruby版本,但指定了“库兼容版本”。这表明Ruby版本1.9.1,1.9.2和1.9.3的库API是相似的,它们可以(理论上)共享相同的gem。

实际的Ruby版本可能与该路径组件不同。 Yopu可以通过运行检查ruby版本

ruby --version