2016年5月3日火曜日

RubyMine でコントローラを作るときに spring 関連のエラーになる

RubyMine からコントローラの作成などをしようとするが、「`to_specs’: Could not find ‘spring’」こんな感じのエラーが出て作成できない。
実際に発行されているコマンドを見ると
 
.../awesome_events/vendor/bundle/ruby/2.2.0/bin/spring rails generate controller welcome index -s

となっている。

メッセージにも、コマンドにも spring とあるので、spring 関連は明白。

エラーメッセージには spring がインストールされているか確認せよ!とあるので、 Gemfile を見るが記述はあるし、インストールフォルダも存在するのでインストールはできている。
他の spring が関係しているのか? と思い停止(bin/spring stop)などをしてみるが変化ない。

そもそも、bundler 経由での rails コマンドのはずが一切無視されているのが非常に気になる。 ターミナルを使って、コントローラの生成をしてみると上手くいく。

RubyMine の Run > Edit Configurations… の関連しそうな項目(Ruby とか Rails とか)の bundler タブの Run the script … にチェックを入れてみても変わらず(一体どうなってんの???)

色々と探ってみた所、どうやら spring の設定は、Preferences の Languages & Frameworks > Ruby SDK and Gems の設定に引っ張られるようで、この項目に指定してある rbenv の右の窓にある gem 群に spring がないとダメみたい。

“+” ボタンを押して、大量に出る gem の中から spring を探しだし(なぜここには検索窓が無いのか?)、インストールすることで、コントローラ生成コマンドが動くようになった。




しかし、bundle install の設定はいつ効いてくるのだろうか・・・
(rbenv 2.2.3 にも spring がなかったので同様のエラーが出るかと期待したけど、この環境で作った場合には spring を使わないようになっていた。正直意味不明。一体どこで指定するのだろうか。)

この手の環境で悩まされるのを解消するためもあって IDE を使っているのだが、逆に IDE の設定で悩むとは本末転倒な気がしてならない。
動き始めると便利だけど、ちょっとしんどい。