2012-07-23 13 views
6

in Rails 3 fa rails s invoke bundler in modo che non hai bisogno di fare bundle exec rails s o è bundle exec necessario per eseguire rails s nella vostra app ambiente Gemfile?rotaie s o rotaie exec fascio s

Aggiornamento E 'inteso che bundle exec dovrebbe essere usato prima di compiti rake a causa delle diverse versioni rastrello. Vedi http://railsapps.github.com/installing-rails-3-1.html per maggiori dettagli. Questa domanda è di circa rotaie script, come:

rails s 
rails server 
rails c 
rails console 

^caso bundle exec essere utilizzato prima di questi script rotaie, o è bundler invocato dal comando rotaie?

+0

Ho sempre aggiunto 'alias rails = 'bundles exec rails'; alias rake = 'bundle exec rake'' alla mia base. Problema risolto. – meagar

+0

Non penso che il 'alias rails = 'bundle exec rails' sia necessario: vedi: [http://railsapps.github.com/installing-rails-3-1.html](http://railsapps. github.com/installing-rails-3-1.html) && [http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/](http: //yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/) – dylanjha

risposta

9

Si dovrebbe ottenere questo comportamento a Rail> = 3.1 tuttavia è necessario stare attenti perché si può utilizzare una versione precedente di rake:

E 'buona norma utilizzare il rastrello comando bundle exec invece di rastrello in modo da utilizzare la versione di Rake specificata nel tuo gemfile (o una dipendenza specificata nel file Gemfile.lock) invece della versione predefinita . Ad esempio, invece di rake db: migrate, eseguite bundle rake exec db: migrate.

Che cosa c'è da sapere: Assicurarsi che si sta utilizzando Rake 0.9.2.2 (o più recente) con aggiornamento gemma rastrello prima di installare Rails 3.1. E usa il rake exec anziché rake.

Citato da: http://railsapps.github.com/installing-rails-3-1.html

Sembra che il contrario è vero per le rotaie di comando:

non corrono exec fascio prima del comando rotaie, rotaie controlla già la presenza di Bundler attraverso il Gemfile e imposta tutto in base ad esso senza il sovraccarico di bundle exec. il comando rails è l'unica eccezione alla regola.

Citato da: - "! Rails 3 viene fornito con forno a sostegno con bundler ... Bundler è trasparente gestisce le dipendenze" http://blog.wyeworks.com/2011/12/27/bundle-exec-rails-executes-bundler-setup-3-times

+0

capisco che 'fascio exec' è una buona idea per i compiti rake ma per quanto riguarda gli script rotaie, come' rails server' o 'rails console'? – dylanjha

+0

Ci scusiamo per la confusione ... Ho modificato questa risposta per riflettere la domanda corretta. – barancw

+0

Grazie per averlo chiarito! – dylanjha

Problemi correlati