Rails - 强制下载XML模板而不是渲染

时间:2014-10-28 08:39:42

标签: ruby-on-rails xml

我的问题与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") %>

1 个答案:

答案 0 :(得分:6)

您可以使用send_file,但是需要引用已经设置的另一个提供内容的端点。或者,如果您不在任何其他上下文中使用xml,则可以使用以下内容:

format.tmx { send_data render_to_string(:show), filename: 'file.tmx', type: 'application/xml', disposition: 'attachment' }

HTH,