2011-11-08 17 views
9

Tengo un montón de archivos en el directorio público/downloads/ahora ¿cómo obtengo la URL para ellos?Rails 3.1: ruta/url a archivo en el directorio público

P.S. no basta con ejecutar /downloads/xyz.tar.bz2, ya que la aplicación se puede implementar en URI sub.

UPD He encontrado una solución simple muertos:


    def public_url(file) 
    root_url + file 
    end 
+2

Por lo que yo sé, el directorio público funciona casi como un estático sistema de archivos. Entonces, si su aplicación se encuentra debajo de una carpeta, como se supone para un dominio, deberá agregarla a /descargas/ – agmcleod

+0

@Daniel si está tratando de acceder a ese URI desde otra parte que no sea el front-end de la aplicación Rails, avísanos, porque eso también puede ser significativo. – jefflunt

Respuesta

11

creo normalocity era casi aquí, pero debería ser más bien root_path de Rails.root.

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

que debe coincidir con lo que sea sub-uri su aplicación reside bajo, y luego añadir la ruta de acceso al archivo estático a ella.

+1

exactamente. he tenido root_url, pero root_path es más lógico para este helper. ¡gracias! – Daniel

+0

@Frost, creo que es posible que te falte un signo igual justo después del primer símbolo de porcentaje. Sin ese signo igual, no se mostrará nada. – Tass

+1

@Tass Gracias por notarlo. Lo arreglé. – Frost

0

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

  • asset_path Calcula la ruta de acceso a los activos en el director pública desde los carriles 4, creo
  • asset_path documentation
Cuestiones relacionadas