Jak uzyskać ścieżkę katalogu głównego aplikacji Rails?Ścieżka katalogu głównego Rails?
Odpowiedz
Możesz uzyskać dostęp do ścieżki aplikacji rails przy użyciu zmiennej RAILS_ROOT
.
Na przykład:
render :file => "#{RAILS_ROOT}/public/layouts/mylayout.html.erb"
RAILS_ROOT jest odrzucony od czasu użycia Rails 3.0 za pomocą Rails.root –
Super poprawności, należy użyć:
Rails.root.join('foo','bar')
która pozwoli aplikacji do pracy na platformach gdzie /
nie jest separator katalogu, gdyby ktoś spróbować uruchom go na jednym.
Na przykład na moim MacBooku , 'Rails.root.join ('foo', 'bar')' oznacza obiekt Pathname, którego @ ścieżka to '/ Users/purplejacket/my_rails_app/foo/bar' – Purplejacket
Poza wszystkimi innymi prawidłowymi odpowiedziami, ponieważ Rails.root
jest Pathname
przedmiot, to nie będzie działać:
Rails.root + '/app/assets/...'
Można użyć coś jak join
Rails.root.join('app', 'assets')
Jeśli chcesz ciąg znaków:
Rails.root.join('app', 'assets').to_s
Właściwie 'Rails.root + 'app/assets'' * działa *, ale tak, "dołącz" jest lepsze. – Mischa
Zwykle nie jest dobrym pomysłem, aby zakodować na stałe token separatora plików (\ lub /). –
Możesz używać:
Rails.root
Ale żeby przyłączyć się do aktywów można użyć:
Rails.root.join(*%w(app assets))
Mam nadzieję, że to pomaga.
W niektórych przypadkach możesz potrzebować rootu Rails bez konieczności ładowania Railsów.
Na przykład, uzyskujesz szybszy cykl zwrotny, gdy modele TDD nie zależą od szyn, wymagając spec_helper
zamiast rails_helper
.
# spec/spec_helper.rb
require 'pathname'
rails_root = Pathname.new('..').expand_path(File.dirname(__FILE__))
[
rails_root.join('app', 'models'),
# Add your decorators, services, etc.
].each do |path|
$LOAD_PATH.unshift path.to_s
end
Umożliwia to łatwe ładowanie zwykłych starych obiektów Ruby z ich plików spec.
# spec/models/poro_spec.rb
require 'spec_helper'
require 'poro'
RSpec.describe ...
Wystarczy Rails.root lub jeśli chcesz dołączyć coś możemy użyć go jak Rails.root.join ('app', 'aktywa'). To_s
Proszę usunąć tę odpowiedź, to tylko szum, nie dodaje nic do pytania. – luk2302
po prostu pisząc Rails.root i dopisz wszystko przez Rails.root.join (*% w (zasoby aplikacji)).to_s
Proszę usunąć tę odpowiedź, to tylko szum, nie dodaje nic do pytania i jest źle sformatowany. – luk2302
- 1. Moduły Ember CLI ES6: ścieżka importu do katalogu głównego aplikacji
- 2. uzyskiwanie katalogu głównego scons
- 3. Rails 3.1: ścieżka/adres URL do pliku w katalogu publicznym
- 4. PHP ścieżka katalogu rekurencyjne
- 5. Uzyskaj ścieżkę katalogu głównego projektu PHP
- 6. Uzyskiwanie względnego katalogu głównego w pliku Global.Asax
- 7. Dysk Google - Identyfikator katalogu głównego
- 8. Względna ścieżka od adresu głównego operatora ("~") w kodzie za
- 9. Używanie niestandardowego katalogu głównego z FiddlerCore
- 10. Rozpakowywanie tar.gz do katalogu głównego z Gradle
- 11. Importowanie skryptu Gradle z katalogu głównego do podprojektów
- 12. IIS 7 - Ścieżka przekierowania katalogu wirtualnego?
- 13. Ścieżka Git pasująca do dowolnej nazwy katalogu
- 14. Ścieżka katalogu szablonu jest nieprawidłowa. Upewnij się, że istnieje lub może zostać utworzony: Nieoczekiwana ścieżka [ścieżka]
- 15. Dopasowywanie adresu url-pattern do tylko katalogu głównego
- 16. Rails 3.1, nginx, indeks katalogu Pasażer zabronione
- 17. Kakao - Uzyskiwanie dostępu do katalogu głównego dla NSFileManager
- 18. Ciągnięcie plików z katalogu do folderu głównego dla NPM
- 19. Zmienianie katalogu głównego witryny IIS6 przy użyciu Powershell
- 20. Przekierowuję cały ruch do katalogu głównego innej domeny
- 21. Wdrażanie aplikacji asp.net do katalogu głównego w IIS
- 22. Problem katalogu głównego Android Test Project w Eclipse
- 23. Usunąć deklarację przestrzeni nazw XML z wyjściowego katalogu głównego XSLT?
- 24. log4j2 podać względną ścieżkę do katalogu głównego tomcat dla FileAppender
- 25. Używanie Robocopy do wykluczania rozszerzenia pliku z katalogu głównego
- 26. PHP Utwórz i zapisz plik txt do katalogu głównego
- 27. zmienna jinja dla katalogu głównego z kolbą-aplikacją
- 28. Renderowanie katalogu głównego jako NULL (rendering w zakresie DOMless)
- 29. Skopiuj folder z głównego pakietu do katalogu dokumentów w iphone
- 30. Podawanie szablonu dyrektywyUrl w odniesieniu do katalogu głównego
W Railsach 2.3 Rails.root jest instancją Pathname, gdzie RAILS_ROOT jest ciągiem znaków. – Richard
Tylko Rails.root w wersji 3.1 i późniejszych (ahh .. przypadek zmieniania CONSTANT;)) – thanikkal
Możesz także "Rails.root.join (*% w (obrazy aktywów aplikacji logo.png))". – Nate