2013-03-21 209 views
0

我通過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 

回答

2

,你在你的路徑有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

0

也許你沒有激活該版本。

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

rvm use 1.9.3 

要設置這個版本的默認,運行

rvm use --default 1.9.3 
+0

我添加了關於rvm關於安裝紅寶石輸出的註釋。 – Andrew 2013-03-21 16:03:20

1

路徑中的版本組件未指定使用的確切Ruby版本,但指定了「庫兼容版本」。這表明Ruby版本1.9.1,1.9.2和1.9.3的庫API是相似的,它們可以(理論上)共享相同的gem。

實際的Ruby版本可能與該路徑組件不同。 Yopu可以通過運行檢查ruby版本

ruby --version