我正在使用Nokogiri在我的应用中生成XML文件。我想保存这个文件,我想显示一个对话框,用户可以在其中选择下载此文件的文件夹。 这是我的控制器中的操作:
def download
require 'nokogiri'
if owner_signed_in?
@slips = current_owner.slips
builder = Nokogiri::XML::Builder.new do |xml|
xml.cedolini{
@slips.each do |slip|
xml.cedolino{
xml.codicecliente_ slip.client_code
xml.data_ slip.day.to_s
xml.ordini{
slip.product_slips.each do |order|
xml.ordine {
xml.codicearticolo_ order.product_code
xml.descrizionearticolo_ order.product_description
xml.ammontare_ order.amount.to_s
}
end
}
}
end
}
end
file = builder.to_xml
send_data file, :type => 'text/xml; charset=UTF-8;', :disposition => "attachment; filename=db.xml"
end
end
我有这样定义的路线:
get '/dbsinc/download'
当我从视图中调用操作时,它不保存XML,我看到一个带有我的操作url的新页面,在页面中我看到页面上呈现的XML文件,但它没有t打开任何对话框以保存文件。 我哪里出错了?感谢
答案 0 :(得分:0)
我想我想通了,路线:`post' dbsinc / download'
在我看来,我用这种方式定义了链接:
<%= link_to 'Download ', {controller:'dbsinc', action:'download'}, method: :post %>
它有效,当我点击链接时会打开下载对话框。