Saya ingin membuat aplikasi rel baru dan menjalankan server rel untuk aplikasi itu, semuanya dari skrip ruby.
Kode saya terlihat seperti ini:
#!/usr/bin/env ruby
system "rails new my_app"
system "cd my_app"
system "rails server &"
Namun, saat menjalankan "rails server &" jalurnya tidak ada di folder my_app, tetapi di folder induk.
Apakah ada cara untuk mengubah direktori di dalam skrip sehingga saya dapat menjalankan "rails server", "rake about" dan "rake db: migrate" untuk aplikasi baru tersebut?
Semua tips untuk mengatasi masalah akan dihargai.
ruby-on-rails
ruby
never_had_a_name
sumber
sumber
Jawaban:
Penggunaan
Dir.chdir
:sumber
Jangan dengarkan mereka,
Dir.chdir("dir")
mungkin akan melakukan hal yang salah. Apa yang hampir selalu Anda inginkan adalah membatasi perubahan pada konteks tertentu, tanpa memengaruhi program lainnya seperti ini:sumber
Thread
kelas)original_directory = Dir::pwd
, lalu ingat variabelnya nanti seperti:Dir::chdir(original_directory)
dukungan sistem: argumen chdir yang memungkinkan Anda menentukan direktori kerjanya:
keluaran '/ tmp'
sumber
Gunakan
Dir.chdir
untuk mengubah direktori kerja untuk skrip.sumber
Gunakan Dir.chdir ("[aString]")
sumber
Mengapa Anda tidak bisa melakukannya seperti ini:
sumber
Baris berikut memiliki keluaran yang sama:
Anda juga dapat menjalankan rails dan membuat aplikasi (ini dapat membantu dalam tes rspec dan lain-lain):
dan pernah Anda dapat menjalankan server rel;)
sumber