Senza effettuare il cding nella directory root della mia applicazione Rails, come posso eseguire un comando Rails o Rake per quella applicazione.Come eseguo Rails/Rake da un'altra directory?
ho provato:
bundle exec rake my_tasks:do_stuff BUNDLE_GEMFILE=/PATH/TO/RAILS_APP/Gemfile
tra le altre combinazioni, senza alcun risultato.
[Update]
La questione è in realtà duplice, fascio non sa dove il Gemfile è e rastrello non sa cosa per l'esecuzione.
Per utilizzare Bundler:
BUNDLE_GEMFILE=/PATH/TO/RAILS_APP/Gemfile bundle exec ...
Nota che BUNDLE_GEMFILE deve andare prima di 'exec fascio'.
Per utilizzare Rake:
rake -f /PATH/TO/RAILS_APP/Rakefile my_task:do_stuff
utilizzare la console di Rails:
????
devono ancora capire come inserire la console Rails da un'altra directory. Guardando il source, penso che potrebbe non essere possibile, perché alla fine fa File.join ('script', 'rails') per avviare il processo di rotaie.
Ci sono [molte buone risposte qui] (http://stackoverflow.com/questions/1206545/run-rake-task-from-outside-rails-root) ma penso che la risposta migliore sia probabile che non dovresti Lo faccio :-). Mentre è possibile, finirai per scoprire che ogni singolo percorso a cui viene fatto riferimento nella chiamata di rake, quindi anche all'interno delle attività di rake chiamate, tutto viene confuso perché si aspettano di essere ancorati alla directory da cui viene eseguita l'attività. –
Buon punto, Tom. Come dice Bill, i compiti devono essere agnostici di CWD. Per piccoli compiti, questo non dovrebbe essere un problema. Grazie! – Nejuf