初学者轨道问题:如何从轨道中的控制器返回文件?从轨道返回文件
我熟悉返回/渲染JSON对象。不过,我从来没有返回/呈现一个文件W /任意扩展名。
从周围阅读它听起来像render :nothing => true
可能有所帮助。我只是在寻找一些指导或相关文件。
初学者轨道问题:如何从轨道中的控制器返回文件?从轨道返回文件
我熟悉返回/渲染JSON对象。不过,我从来没有返回/呈现一个文件W /任意扩展名。
从周围阅读它听起来像render :nothing => true
可能有所帮助。我只是在寻找一些指导或相关文件。
您可以使用内置导轨send_file或send_data方法。
要流(对于文件代理端点例如)一个文件,使用由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类型是什么,您可以检查this wikipedia page或使用mime-types宝石。 (或者如果您正在从存储MIME类型的数据库中读取数据,请使用它)。
'send_data'听起来不错。谢谢! – SundayMonday 2012-02-10 19:00:20
可能的重复:http://stackoverflow.com/questions/1213957/exposing-files-from-a-service-through-a-rails-application – Baldrick 2012-02-10 18:47:18