with vmap type sampledata rails couldn application ruby-on-rails ruby bundler

ruby on rails - vmap - ¿Cuál es la diferencia entre “rails s” y “bundle exec rails s”?



couldn t find file jquery vmap sampledata with type application javascript (3)

¿Cuál es la diferencia entre los rails s y el bundle exec rails s ? La gente parece decir que el bundle exec rails s es mejor, pero ¿por qué? Mientras tanto, este post dice que rails s es mejor.

Cual es


A veces, cuando instalas una gema, también viene con un ejecutable / binario. Los ejemplos de estos incluyen: rieles , rastrillo , rspec , palanca , etc. Sin embargo, cuando tienes instaladas varias versiones de una gema, tendrás varias versiones de estos ejecutables a tu alrededor. Por lo tanto, si desea ejecutar uno de estos binarios para una aplicación de rieles dada, es posible que deba desambiguar qué ejecutable desea, el de rake v10.1 o el de rake v10.2, por ejemplo. Dado que la respuesta a esto se puede detectar por la versión de la gema que tiene en su archivo Gemfile.lock (que es creado por Bundler), Bundler proporciona un comando para ejecutar un binario basado en la versión que se especifica en el archivo Gem del proyecto actual. bloquear. Este comando es bundle exec <command> .

Por lo tanto, para la mayoría de los comandos, querrá ejecutar el bundle exec <command> para asegurarse de que está ejecutando la versión correcta para su proyecto (y también para asegurarse de que todas las dependencias también se carguen de las versiones correctas especificadas en su Gemfile.lock ). La única excepción notoria a esta regla es el comando rails . La razón es que lo primero que hace el comando rails es cargar el bundler y verificar qué versión del comando ejecutar. Así que, en realidad, solo te estarías ralentizando para involucrar a Bundler al ejecutar el comando rails .

Así que, en definitiva, usa:

rails server rails console bundle exec <some command that isn''t rails>



bundle exec asegura que estás activando comandos de gemas en tu Gemfile.

Puede que no sea tan útil para el comando de rails pero definitivamente es necesario para rake por ejemplo.