Quiero crear una nueva aplicación de rails y poner en marcha el servidor de rails para esa aplicación, todo desde un script ruby.
Mi código se ve así:
#!/usr/bin/env ruby
system "rails new my_app"
system "cd my_app"
system "rails server &"
Sin embargo, cuando se ejecuta "rails server &", la ruta no está en la carpeta my_app, sino en la carpeta principal.
¿Hay alguna forma de cambiar el directorio dentro de un script para poder ejecutar "rails server", "rake about" y "rake db: migrate" para esa nueva aplicación?
Todos los consejos prácticos serán apreciados.
ruby-on-rails
ruby
never_had_a_name
fuente
fuente
Respuestas:
Utilizar
Dir.chdir
:fuente
No los escuches,
Dir.chdir("dir")
probablemente harás algo incorrecto. Lo que casi siempre desea es limitar el cambio a un contexto particular, sin afectar el resto del programa de esta manera:fuente
Thread
original_directory = Dir::pwd
, luego recuerda la variable más tarde así:Dir::chdir(original_directory)
el sistema admite: argumento chdir que le permite especificar su directorio de trabajo:
salidas '/ tmp'
fuente
Úselo
Dir.chdir
para cambiar el directorio de trabajo de un script.fuente
Utilice Dir.chdir ("[aString]")
fuente
¿Por qué no puedes hacerlo así?
fuente
Las siguientes líneas tienen el mismo resultado:
también puede ejecutar rieles y crear una aplicación (esto puede ser útil en pruebas de rspec, etc.):
y siempre puedes ejecutar un servidor rails;)
fuente