trabajar rails proyecto programa para iniciar ejecutar descargar consola con como actualidad abrir ruby-on-rails ruby

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 ("[aString]")