Soy nuevo en Ruby on Rails. Estoy usando Ruby 2 y Rails 4. Quiero descargar un archivo usando rails. Pero cuando ingreso la ruta, no muestra la página html, pero abre un cuadro de descarga y hago clic en Aceptar, se descarga. Mis códigos están abajo. Por favor, ayúdame si algún cuerpo puede. Gracias.
En el controlador:
def download
send_file(
"#{Rails.root}/public/robots.txt",
filename: "robots.txt",
type: "application/txt"
)
end
En download.html.erb:
<%= link_to "Download", academics_download_path(:format => "txt") %>
Respuestas
0 para la respuesta № 1Para cada solicitud solo puede hacer una respuesta. Enviar un archivo es una respuesta, por lo que no puede hacer nada más: la vista ni siquiera se está representando.
Si primero desea mostrar una página, debe crear una nueva acción para mostrar la página html y luego otra para enviar el archivo.
# controller
def download_file
send_file(
"#{Rails.root}/public/robots.txt",
filename: "robots.txt",
type: "application/txt"
)
end
def download
end
# view
<%= link_to "Download", academics_download_file_path(:format => "txt") %>
Recuerde actualizar sus rutas también (requiere reiniciar el servidor)