Ich möchte eine neue Rails-Anwendung erstellen und den Rails-Server für diese Anwendung starten, alles aus einem Ruby-Skript.
Mein Code sieht folgendermaßen aus:
#!/usr/bin/env ruby
system "rails new my_app"
system "cd my_app"
system "rails server &"
Wenn Sie jedoch "Rails Server &" ausführen, befindet sich der Pfad nicht im Ordner my_app, sondern im übergeordneten Ordner.
Gibt es eine Möglichkeit, das Verzeichnis innerhalb eines Skripts zu ändern, damit ich "Rails Server", "Rake About" und "Rake DB: Migrate" für diese neue Anwendung ausführen kann?
Alle Workaround-Tipps wären willkommen.
ruby-on-rails
ruby
Never_had_a_name
quelle
quelle
Antworten:
Verwendung
Dir.chdir
:quelle
Hören Sie nicht auf sie,
Dir.chdir("dir")
wird wahrscheinlich das Falsche tun. Was Sie fast immer wollen, ist, Änderungen auf einen bestimmten Kontext zu beschränken, ohne den Rest des Programms wie folgt zu beeinflussen:quelle
Thread
Klasse)original_directory = Dir::pwd
und rufen Sie die Variable später wieDir::chdir(original_directory)
Das System unterstützt das Argument: chdir, mit dem Sie das Arbeitsverzeichnis angeben können:
gibt '/ tmp' aus
quelle
Verwenden Sie
Dir.chdir
diese Option , um das Arbeitsverzeichnis für ein Skript zu ändern.quelle
Verwenden Sie Dir.chdir ("[aString]")
quelle
Warum kannst du es nicht einfach so machen:
quelle
Die folgenden Zeilen haben die gleiche Ausgabe:
Sie können auch Rails ausführen und eine Anwendung erstellen (dies kann bei Rspec-Tests usw. hilfreich sein):
und immer kannst du einen Rails Server betreiben;)
quelle