Je veux créer une nouvelle application de rails et lancer le serveur de rails pour cette application, tout à partir d'un script ruby.
Mon code ressemble à ceci:
#!/usr/bin/env ruby
system "rails new my_app"
system "cd my_app"
system "rails server &"
Cependant, lors de l'exécution de "rails server &", le chemin ne se trouve pas dans le dossier my_app, mais dans le dossier parent.
Existe-t-il un moyen de changer de répertoire dans un script afin que je puisse exécuter "rails server", "rake about" et "rake db: migrate" pour cette nouvelle application?
Tout travail autour des conseils serait apprécié.
ruby-on-rails
ruby
never_had_a_name
la source
la source
Réponses:
Utilisez
Dir.chdir
:la source
Ne les écoutez pas,
Dir.chdir("dir")
fera probablement la mauvaise chose. Ce que vous voulez presque toujours, c'est limiter le changement à un contexte particulier, sans affecter le reste du programme comme ceci:la source
Thread
classe)original_directory = Dir::pwd
, puis rappelez-vous la variable plus tard comme ceci:Dir::chdir(original_directory)
le système prend en charge: l'argument chdir qui vous permet de spécifier son répertoire de travail:
sorties '/ tmp'
la source
Permet
Dir.chdir
de modifier le répertoire de travail d'un script.la source
Utilisez Dir.chdir ("[aString]")
la source
Pourquoi ne pouvez-vous pas le faire comme ceci:
la source
Les lignes suivantes ont le même résultat:
vous pouvez également exécuter des rails et créer une application (cela peut être utile dans les tests rspec, etc.):
et jamais vous pouvez exécuter un serveur de rails;)
la source