Quando versões diferentes de gems são instaladas por bundler ou diretamente por rubygems, também existem scripts executáveis que estão instalados (como rails, rake e, ironicamente, bundle ). Executar as versões corretas desses scripts enquanto você trabalha com diferentes pacotes seria impossível, então a solução que o bundler criou é prefixar seus comandos com bundle exec
, o que fará com que eles sejam executados no contexto de seu pacote e iniciem a versão correta do seu Gemfile:
bundle exec rails s
A outra opção é informar ao bundler para instalar esses scripts em um diretório para que você possa chamá-los de lá:
bundle install --binstubs
# same as:
bundle install --binstubs=./bin
A opção mais segura que eu acho é usar bundle exec
, que você pode encurtar usando um alias de shell, já que pode ficar irritante ao digitar todas as vezes.