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>
http://bundler.io/v1.5/rails3.html - Rails 3 viene con soporte al horno con bundler
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.