2011-04-27 1840 views
8

Tengo un conjunto de archivos PDF estáticos. Quiero enumerarlos en una página de rieles, con enlaces a ellos.Lista/vinculación a los contenidos del directorio en Rails

Lo que necesito ahora es cómo recortar/public del comienzo de la ruta para que el enlace realmente funcione.

código actual:

<h1>Listing letters</h1> 
<table> 
<ul> 
<% @files = Dir.glob("public/files/*.pdf") %> 
<% for file in @files %> 
<% new_file = file.to_s %> 
<% new_file = new_file.chomp("public/") %> 
<li><%= link_to 'Letter', new_file %></li> 
<% end %> 
</ul> 
</table> 

Sin embargo, los enlaces siguen llegando como

http://localhost:3000/public/files/document.pdf 

cuándo trabajar tienen que ser

http://localhost:3000/files/document.pdf 

Respuesta

6
<% Dir["public/files/*.pdf"].each do |file| %> 
    <li><%= link_to 'Letter', file[/\/.*/] %></li> 
<% end %> 
+0

Mucho más simple que lo que estaba intentando. Gracias. Me acabas de ahorrar otra hora :) –

3

El método Chomp se utiliza para eliminar calle detrás en el final de la cadena;) Use gsub en su lugar.

new_file.gsub!('public', '') 

o

new_file = new_file.gsub('public', '') 
+0

Cada vez más cerca! Sin embargo, haciendo <% new_file = new_file.delete "public /"%> me está dando una cadena con cualquiera de esas letras en la ruta eliminada (es decir, fes/docment.pf) – DVG

+0

Hmm cierto, lo siento, pruebe gsub. Se agregó un ejemplo. – Icid

Cuestiones relacionadas