RubyMine 6.3 で Rake 実行時に
Error:[rake --tasks] /Users/n/.gem/ruby/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:361:in `validate_ruby!': Your Ruby version is 2.0.0, but your Gemfile specified 2.1.2 (Bundler::RubyVersionMismatch)
from /Users/n/.gem/ruby/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:116:in `setup'
from /Users/n/.gem/ruby/2.0.0/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
:
みたいなエラーがでてしまうときの対処方法。
原因
Gemfile に指定してあるインタプリタのバージョンと、実際に rake を実行しているバージョンが異なるのが原因。
そこで Gemfile でのインタプリタのバージョン指定、たとえば
ruby "2.1.2"
と書いてある箇所を消せばとりあえず直る。
直るが…… 意図しないインタプリタ上で Rake タスクが走ってしまう、そもそも Heroku にデプロイできなくなる、などなどハマりどころ満載なので、そんな安直な解決は禁物。実際に動作しているバージョンへ Gemfile を直してしまうのもダメ。それでは何も解決していないではないか。喝!
修正
- そなたが当に使いたいインタプリタのバージョンを Gemfile に書くのじゃ
- rbenv なり rvm (オレ使ってないけど) なりを使ってそのインタプリタをインストールするのじゃ
- "Preferences" → "Ruby SDK and Gems" を開き、2. でインストールしたインタプリタを指定するのじゃ
- "File" → "Invalidate Caches" → "Invalidate and Restart" して、RubyMine に魂を入れ直すのじゃ