轨道send_data不保存文件



我正在使用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文件,但它没有打开任何对话框来保存文件。我哪里说错了?由于

我想我弄明白了,route: ' post 'dbsinc/download'

在我看来,我是这样定义链接的:

<%= link_to 'Download ', {controller:'dbsinc', action:'download'}, method: :post %>

它工作了,当我点击链接时,下载对话框打开了

相关内容

  • 没有找到相关文章

最新更新