Jak uzyskać ścieżkę do katalogu głównego aplikacji Rails?
ruby-on-rails
fivetwentysix
źródło
źródło
Rails.root.join(*%w( app assets images logo.png ))
.Rails.root / 'app' / 'assets' / 'images' / 'logo.png'
Aby uzyskać super poprawność, należy użyć:
co pozwoli twojej aplikacji działać na platformach, na których
/
nie ma separatora katalogów, jeśli ktoś spróbuje uruchomić ją na jednym.źródło
Rails.root.join('foo','bar')
ocenia obiekt Pathname, którego @ ścieżka to „/ Users / purplejacket / my_rails_app / foo / bar”Możesz uzyskać dostęp do ścieżki aplikacji Railsowej za pomocą zmiennej
RAILS_ROOT
.Na przykład:
źródło
Oprócz wszystkich innych poprawnych odpowiedzi, ponieważ
Rails.root
jest toPathname
obiekt, to nie zadziała:Możesz użyć czegoś takiego
join
Jeśli chcesz ciąg, użyj tego:
źródło
Rails.root + 'app/assets'
to działa, ale takjoin
jest fajniej.W niektórych przypadkach możesz chcieć rootować Railsy bez konieczności ładowania Railsów.
Na przykład, otrzymujesz szybszy cykl sprzężenia zwrotnego, gdy modele TDD, które nie zależą od Railsów,
spec_helper
zamiast tego wymagająrails_helper
.Co pozwala łatwo załadować zwykłe stare obiekty Ruby z ich plików specyfikacji.
źródło
Możesz użyć:
Aby jednak dołączyć do zasobów, możesz użyć:
Mam nadzieję, że to ci pomoże.
źródło
Po prostu przez Rails.root lub jeśli chcesz coś dodać, możemy użyć tego jak Rails.root.join („aplikacja”, „zasoby”).
źródło
Po prostu pisząc Rails.root i dołączając cokolwiek przez Rails.root.join (*% w (zasoby aplikacji)). To_s
źródło