2016-11-14 3 views
0

Я использую Nokogiri для создания XML-файла в моем приложении. Я хочу сохранить этот файл, и я хочу отобразить диалоговое окно, в котором пользователь может выбрать папку, в которой загружается этот файл. Это действие в мой контроллер:Rails send_data не сохраняет файл

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-файл, отображаемый на странице, но он не открывает диалоговое окно для сохранения файла. Где я ошибаюсь? Благодаря

+0

Что такое 'endit do'? –

+0

Я ошибся с копированием и вставкой, это просто и конец, я редактировал сейчас с правильным кодом –

+0

Это может помочь разборчивость, если вы также исправите свой отступ. –

ответ

0

Я думаю, что я понял, маршрут: `сообщение«dbsinc/выгрузку»

И на мой взгляд, я определил ссылку следующим образом:

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

И это работает, диалог загрузки открывается, когда я нажимаю на ссылку.

+0

Является ли это решением проблемы? Если это так, система даст вам период ожидания, а затем позволит вам выбрать ответ в качестве решения. И, если это так, пожалуйста, отформатируйте его для удобства чтения. –

Смежные вопросы