0

ruby 1.9.3 を 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 が何を表しているのかということです。ruby のバージョンのようですが、私のは 1.9.3 です。どういうわけか1.9.3の代わりにRuby 1.9.1が呼び出されるということですか?

rvm には次のリストが表示されます。

rvm list

rvm rubies

=* ruby-1.9.3-p392 [ x86_64 ]

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

3 に答える 3

2

パスに 1.9.1 があるという事実は、Ruby 1.9.1 を使用していることを意味するものではありません。これは Ruby 互換バージョンです。

于 2013-03-21T16:17:56.920 に答える
1

パス内のバージョン コンポーネントは、使用されている正確な Ruby バージョンを指定していませんが、「ライブラリ互換バージョン」を指定しています。これは、Ruby バージョン 1.9.1、1.9.2、および 1.9.3 のライブラリ API が十分に類似しており、(理論的には) 同じ gem を共有できることを示しています。

実際の Ruby バージョンは、そのパス コンポーネントとは異なる場合があります。Yopu を実行して Ruby のバージョンを確認できます。

ruby --version
于 2013-03-21T17:12:38.607 に答える
0

おそらく、そのバージョンをアクティベートしていません。

次のコマンドを使用してバージョンをアクティブ化します。

rvm use 1.9.3

このバージョンのデフォルトを設定するには、次を実行します

rvm use --default 1.9.3
于 2013-03-21T15:57:20.070 に答える