我的问题与this question非常相似,但这个答案对我不起作用。我有一个自定义的xml文件,我想下载而不是浏览器呈现。我已尝试将send_file
方法(例如the answer)用于上面链接的问题,但我也收到错误can't convert Hash into String
。
控制器:
respond_to do |format|
format.tmx
end
模板: show.tmx.erb
<?xml version="1.0"?>
<tmx xmlns="http://www.gala-global.org/oscarStandards/tmx/tmx14b.html" version="1.4b">
</tmx>
查看(我希望此链接在浏览器中下载文档而不是渲染):
<%= link_to "Download", document_path(@document, format: "tmx") %>
答案 0 :(得分:6)
您可以使用send_file,但是需要引用已经设置的另一个提供内容的端点。或者,如果您不在任何其他上下文中使用xml,则可以使用以下内容:
format.tmx { send_data render_to_string(:show), filename: 'file.tmx', type: 'application/xml', disposition: 'attachment' }
HTH,