2011-11-08 22 views
9

Mam kilka plików w folderze public/downloads/teraz jak mogę uzyskać dla nich URL?Rails 3.1: ścieżka/adres URL do pliku w katalogu publicznym

P.S. robienie samego /downloads/xyz.tar.bz2 nie powiedzie się, ponieważ aplikacja może zostać wdrożona w sub URI.

UPD znalazłem martwego proste rozwiązanie:


    def public_url(file) 
    root_url + file 
    end 
+2

O ile mi wiadomo, roboty publiczne dość dużo jak statyczny system plików. Jeśli więc twoja aplikacja znajduje się w folderze, jak przypuszczalnie domena, musisz ją dołączyć do/downloads/ – agmcleod

+0

@Daniel Jeśli próbujesz uzyskać dostęp do identyfikatora URI z czegoś innego niż front-end aplikacji Rails, daj nam znać, ponieważ może to być również znaczące. Dokładnie – jefflunt

Odpowiedz

11

myślę normalocity prawie tu, ale powinno być raczej root_path niż Rails.root.

<%= link_to "The file", root_path+"/downloads/test.txt" %> 

Powinno to pasować do dowolnej pod-uri, w której znajduje się aplikacja, a następnie do niej dodać ścieżkę do pliku statycznego.

+1

. Mam root_url, ale ścieżka_koci jest imho bardziej logiczna dla tego helpera. Dziękuję Ci! – Daniel

+0

@Frost, myślę, że może brakować znaku równości tuż za pierwszym symbolem procentu. Bez tego znaku równości nic nie będzie wyświetlane. – Tass

+1

@Tass Dziękujemy za uwagę. Właśnie to naprawiłem. – Frost

0

link_to "The file", asset_path("downloads/test.txt")