「rails s」は機能しませんが、「bundle exec Rails s」は機能します。なぜ?
概要
すべての gem は、アプリのベンダー/バンドル ディレクトリにインストールされました。ここで疑問に思うのですが、なぜ Rails s コマンドは機能しないのに、bundle exec Rails s は機能するのでしょうか? Githubからアプリをコピーしました。 rspecコマンドでも同様です。rbenv を使用して適切なバージョンの Ruby をインストールしました。 これはgemをvendor/bundleディレクトリにインストールしたためでしょうか?gem install Bundler でバンドラーをインストールし、bundle install –path Vendor/bundle を実行しました。私は混乱しています。
また、gem list を実行すると、少数の gem しか取得できませんが、vendor/bundle ディレクトリには大量の gem が存在します。
gem list コマンドで、vendor/bundle ディレクトリの gem が表示されない理由と、bundle exec でコマンドを実行する必要がある理由を教えてください。ありがとう!
解決策
Bundle exec コマンドを使用する目的は、現在のバンドル内で実行するコマンド、またはベンダー ディレクトリ内にインストールされている gem を検索することです。
新しいレール (v5) を実行している場合は、bin ディレクトリで実行可能なコマンドをコピーする binstub を確認してください。簡単に電話できるように
ビン/レールサーバー
これは、現在当社が提供している導入ソリューションで採用されているのと同じアプローチです。 .bundle ディレクトリが作成されるため、毎回バンドル インストールを行う必要がなくなります。