Wie erhalte ich den Stammverzeichnispfad meiner Rails-App?
ruby-on-rails
fünfundsechzig
quelle
quelle
Rails.root.join(*%w( app assets images logo.png ))
.Rails.root / 'app' / 'assets' / 'images' / 'logo.png'
Für eine hervorragende Korrektheit sollten Sie Folgendes verwenden:
Dadurch kann Ihre App auf Plattformen ausgeführt werden, auf denen
/
sich kein Verzeichnistrennzeichen befindet, falls jemand versucht, sie auf einer auszuführen.quelle
Rails.root.join('foo','bar')
Pathname-Objekt ausgewertet, dessen @ path '/ Users / lilajacket / my_rails_app / foo / bar'Sie können mit Variablen auf den Rails-App-Pfad zugreifen
RAILS_ROOT
.Zum Beispiel:
quelle
Zusätzlich zu all den anderen richtigen Antworten funktioniert dies nicht , da
Rails.root
es sich um einPathname
Objekt handelt:Sie könnten so etwas wie gebrauchen
join
Wenn Sie eine Zeichenfolge möchten, verwenden Sie diese:
quelle
Rails.root + 'app/assets'
funktioniert , aber jajoin
ist ordentlicher.In einigen Fällen möchten Sie möglicherweise das Rails-Stammverzeichnis, ohne Rails laden zu müssen.
Zum Beispiel erhalten Sie einen schnelleren Feedback-Zyklus, wenn Sie TDD-Modelle, die nicht von Rails abhängen,
spec_helper
anstelle von benötigenrails_helper
.Auf diese Weise können Sie ganz einfach alte Ruby-Objekte aus ihren Spezifikationsdateien laden.
quelle
Sie können verwenden:
Um sich den Assets anzuschließen, können Sie Folgendes verwenden:
Hoffentlich hilft dir das.
quelle
Einfach von Rails.root oder wenn Sie etwas anhängen möchten, können wir es wie Rails.root.join ('App', 'Assets'). To_s verwenden
quelle
Einfach durch Schreiben von Rails.root und Anhängen von Rails.root.join (*% w (App-Assets)). To_s
quelle