Ruby on rails 从rails返回文件

Ruby on rails 从rails返回文件,ruby-on-rails,file,Ruby On Rails,File,初学者rails问题:如何从rails中的控制器返回文件? 我熟悉返回/呈现JSON对象。但是,我从未返回/呈现过具有任意扩展名的文件 从周围的阅读来看,这听起来像是render:nothing=>true可能会有所帮助。我只是想找一些指导或相关文档。您可以使用内置的rails或方法 要流式传输文件(例如,对于文件代理端点),请使用send_file: send_file("#{RAILS_ROOT}/path/to/file/on/server", :filename => "cli

初学者rails问题:如何从rails中的控制器返回文件?

我熟悉返回/呈现JSON对象。但是,我从未返回/呈现过具有任意扩展名的文件


从周围的阅读来看,这听起来像是
render:nothing=>true
可能会有所帮助。我只是想找一些指导或相关文档。

您可以使用内置的rails或方法

要流式传输文件(例如,对于文件代理端点),请使用send_file:

send_file("#{RAILS_ROOT}/path/to/file/on/server",
  :filename => "client-suggested-filename",
  :type => "mime/type")
要流式传输生成的数据(例如,对于生成的pdf),请使用send_data:

send_data(your_data,
  :filename => "client-suggested-filename",
  :type => "mime/type")
文件扩展名和mime类型不必匹配,但它们可能只是为了符合最终用户的期望。例如,如果发送的mime类型为
application/pdf
,则应将
:filename
设置为
something.pdf

如果不确定要发送的文件的mime类型,可以检查或使用gem。(或者,如果您正在从存储mime类型的数据库中读取,请使用该数据库)。

可能的重复: