Puede usar los rieles incorporados send_file o el método send_data.
de flujo de un archivo (por ejemplo, para un punto final de archivo de proxy), use send_file:
send_file("#{RAILS_ROOT}/path/to/file/on/server",
:filename => "client-suggested-filename",
:type => "mime/type")
de flujo de datos generados (por ejemplo, para un pdf generado), el uso SEND_DATA:
send_data(your_data,
:filename => "client-suggested-filename",
:type => "mime/type")
El la extensión de archivo y el tipo de mime no tienen que coincidir, pero probablemente deberían ajustarse a las expectativas del usuario final. Por ejemplo, si está enviando con un tipo de mime de application/pdf
, realmente debe establecer :filename
en something.pdf
.
Si no está seguro de qué tipo de mime es para el archivo que está enviando, puede marcar this wikipedia page o utilizar la gema mime-types. (O si está leyendo desde una base de datos que almacena el tipo de mimo, use eso).
posible duplicar: http://stackoverflow.com/questions/1213957/exposing-files-from-a-service-through-a-rails-application – Baldrick