将XML渲染为文件,而不是内联

时间:2014-06-30 11:23:26

标签: ruby-on-rails

我可以在我的应用中选择呈现发票的XML版本。为此,我使用一个单独的类,因为它有一些复杂的计算。这很好用,它可以很好地在浏览器中呈现XML。

但是,我更喜欢将其作为文件下载。我怎样才能做到这一点? 在控制器中我现在有这个:

def show
  @invoice = Invoice.find(params[:id])

  respond_to do |format|
    format.xml { render xml: @invoice.render_xml }
  end
end

我知道您可以添加下载选项:

filename: 'mydoc.xml', type: "application/xml", disposition: 'attachment'

但是如何将它与我的特定代码结合起来?

1 个答案:

答案 0 :(得分:2)

将控制器中的render更改为send_data,然后添加问题中的选项。 http://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_data