問題
下の記事にあるように、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を再起動すればよかったのかも。