uoz 作業日記

様々な作業の記録を共有するブログです。

Your Ruby version is 2.1.1, but your Gemfile specified 2.1.5 に苦しんだ

問題

mac yosemiteです。

下の記事にあるように、rbenv中のruby 2.1.1で開発して、途中で2.1.5に変えた。


Yosemite therubyracerインストール - uoz 作業日記

しかし、その変え方が中途半端だったらしく、railsコマンドを打つと、rubyのバージョンとgemfileに書いてあるrubyのバージョンがあっていないと言われるように。

% rails c    
Your Ruby version is 2.1.1, but your Gemfile specified 2.1.5

こんな感じ。


ググると同じようなケースがでてきたが、これとは多分原因が違った。
4時起きソフト: Your Ruby version is 2.1.5, but your Gemfile specified 2.1.1

bundlerはsysytemのrubyじゃなく、ちゃんとrbenvのrubyで入っていた

which bundle                                                                                                                 
/Users/hogehogehoge/.rbenv/shims/bundle

こまった...

解決

いろいろ検索するうちたどり着いたこいつに助けられた。
Can get e.g. “Your Ruby version is 2.1.1, but your Gemfile specified 2.1.2” when changing Ruby version without restarting Spring · Issue #314 · rails/spring · GitHub

spring stop

これだけで、

rails c

が通るようになった。

なぜ???


springってのはいろんなライブラリを先読みしとくツールらしい。
Railsの開発効率をあげる - Springを使ってRailsのコンソールコマンドの実行を早くする - Rails Webook

こいつが2.1.1で起動して常駐してたってことか。
先読みされているライブラリに、railsも入っていたという話か。
じゃあmacを再起動すればよかったのかも。