ruby on rails - rails - Para cambiar el directorio dentro de un script de ruby?
iniciar un proyecto en ruby on rails (6)
¿Por qué no puedes hacerlo así?
#!/usr/bin/env ruby
system ''rails new myapp && cd myapp && rails server &''
Quiero crear una nueva aplicación de rieles y activar el servidor de rieles para esa aplicación, todo desde un script de 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 de acceso no está en la carpeta my_app, sino en la carpeta principal.
¿Hay alguna manera de cambiar el directorio dentro de un script para que pueda ejecutar "rails server", "rake about" y "rake db: migrate" para esa nueva aplicación?
Todos los consejos prácticos serán apreciados.
Las siguientes líneas tienen el mismo resultado:
puts Dir.chdir("/tmp") { IO.popen("ls -la") { |io| io.read } }
puts IO.popen(["ls", "-la", "/tmp"]).read
puts IO.popen("ls -la /tmp").read
# drwxrwxrwt 25 root root 16384 июля 23 01:17 .
# drwxr-xr-x 22 root root 4096 июля 22 13:36 ..
# drwxrwxr-x 12 itsnikolay itsnikolay 4096 июля 19 17:14 app_template
# drwx------ 2 itsnikolay itsnikolay 4096 июля 21 15:04 .com.google.Chrome.dThb8f
# drwx------ 2 itsnikolay itsnikolay 4096 июля 18 20:55 .com.google.Chrome.FGDBGc
también puede ejecutar rails y crear una aplicación (esto puede ser útil en las pruebas de rspec, etc.):
IO.popen("cd /tmp/ && rails new test_app").read
y siempre se puede ejecutar un servidor de rieles;)
No los escuchen, Dir.chdir("dir")
probablemente hará lo incorrecto. Lo que casi siempre quiere es limitar el cambio a un contexto particular, sin afectar el resto del programa de esta manera:
#!/usr/bin/env ruby
system "rails new my_app"
Dir.chdir("my_app") do
system "rails server &"
end
# back where we were, even with exception or whatever
Use Dir.chdir
para cambiar el directorio de trabajo de un script.
Use Dir.chdir
:
Dir.chdir "my_app"
Use Dir.chdir ("[aString]")