[Ruby on Rails] railsコマンドで`Could not find 'bundler'`エラーが出て苦戦したメモ


Ruby on Railsの勉強がてら手元のMacにrbenv使いながら環境インストールしたら表題のエラーに悩まされたのでメモ

参考にさせて頂いた環境導入手順

rbenvなどを使って個別環境を作ってみる。

発生したエラー

gemインストールしてrailsアプリ作って、さてrailsのインストール確認するかとなった時に以下のエラーが発生。

$ rails -v
Traceback (most recent call last):
    15: from bin/rails:3:in `<main>'
   ¦
   (中略)
   ¦
     1: from /(rbenv入れたパス)/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems.rb:254:in `bin_path'
/(rbenv入れたパス)/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems.rb:277:in `find_spec_for_exe': Could not find 'bundler' (2.2.26) required by your /(実行パス)/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.2.26`
  • bundle update --bundler しても、 gem install bundler:2.2.26 しても状況変わらず
  • こちらのページ の手順を参考にさせてもらったものの状況変わらず。

解決手段

rails ではなく bundle exec rails を使う

$ bundle exec rails -v
Rails 5.2.6

ちゃんと動いた。

補足

Bundlerの動作をちゃんとわかってなかったのが原因。
もっというと、どうやら実行パスに bundler/setup が存在してなかったことが直接の原因だったっぽい。
インストールの際にどっかでコケてたのかな…?

(勉強させていただいたページ)
bundle execって必要なの?
bundler、bundle execについて ※自分用メモ
bundle exec と bin/rails の違い

以上。