概要
Run Configuration Error:[No Rails found in SDK]への対応について
RubyMineを初めて使った際にはまったので備忘録として書いておく
環境
OS:MacOS Mojave
Ruby:2.6.3
anyenv下のrbenvでインストール
現象
RubyMineで既存プロジェクトを開いて「Run Development project」しようとしたところ
下記のエラーが表示されて実行することができませんでした。
Run Configuration Error:[No Rails found in SDK]
また、ググって下記の対応してみましたが解決しませんでした。
- .ideaディレクトリを削除して再起動
- Tools-Bundler-install
- 「Edit Configurations」にてRuby SDKを「Use project SDK」や「Use other SDK」を変更
どちらでも適正に設定されていれば大丈夫 - 「Edit Configurations」にてBundlerタブの「Run the script〜」にチェックをいれる
- これだけでは解消しませんが、しておく必要はあります
原因
- プロジェクト内にインストールされたgemをRubyMineが認識するためには、プロジェクト直下に
.bundle/config
を設置する必要があるが、システム全体での設定~/.bundle/config
で代用していたため未設置だったためでした。
ちなみに、下記サイトの記述により気づくことができました。
Pleiades - RubyMine201902
【引用】
この場合、Bundlerはgemsを vendor/bundle ディレクトリーにインストールし、.bundle/config ファイルをプロジェクトのルートに追加します。RubyMineはこの設定ファイルを処理して、gemsが vendor/bundleにインストールされていることを検出します。
~/.bundle/configで「BUNDLE_PATH: "vendor/bundle"」を設定していると
Tools-Bundler-installでオプションなし実行するだけでは、
プロジェクトのディレクトリ内にconfigファイルを生成しないことも原因でした。
対策
Tools-Bundler-installする際にオプションに下記を指定する
--path vendor/bundle
そうすればプロジェクト内に.bundle/config
が設定されてエラーは解消されます
その他
RubyMineでgemをインストールするとコンソールのコマンドでインストールした場合とで、vendor/bundle下の階層が違う。でも、configに記載されるのはvendor/bundle
で同じ
- RubyMine
- vendor/bundle/ruby/バージョン/gems
- コマンド
- vendor/bundle/gems
これは、それぞれを下記で実行していたためということがわかりました
- RubyMine
- rbenv exec bundle install --path vendor/bundle
- cmd
- bundle install --path vendor/bundle