/ / El archivo de descarga en Rails 4 no muestra la página html - ruby-on-rails, ruby, ruby-on-rails-4, ruby-on-rails-4.1

Descargar archivo en Rails 4 muestra que no hay página html - ruby-on-rails, ruby, ruby-on-rails-4, ruby-on-rails-4.1

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 № 1

Para 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)