我通过rvm安装了ruby 1.9.3。但是如果出现错误,我会收到以下形式的消息
/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
答案 0 :(得分:2)
您的路径中有1.9.1的事实不意味着您使用的是ruby 1.9.1 - 它是Ruby兼容版本。
答案 1 :(得分:1)
路径中的版本组件未指定使用的确切Ruby版本,但指定了“库兼容版本”。这表明Ruby版本1.9.1,1.9.2和1.9.3的库API足够相似,它们可以(理论上)共享相同的gem。
实际的Ruby版本可能与该路径组件不同。 Yopu可以通过运行
来检查ruby版本ruby --version
答案 2 :(得分:0)
可能你没有激活那个版本。
使用以下命令激活您的版本。
rvm use 1.9.3
要将此版本设为默认值,请运行
rvm use --default 1.9.3