2016-11-14 2 views
0

나는 애플 리케이션에서 XML 파일을 생성하는 Nokogiri를 사용하고 있습니다. 이 파일을 저장하고 싶습니다. 사용자가이 파일을 다운로드 할 폴더를 선택할 수있는 대화 상자를 표시하려고합니다. 내가보기에서 작업을 호출 할 때레일 send_data 파일을 저장하지 않습니다

get '/dbsinc/download' 

, 그것은 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 

: 이것은 내 컨트롤러에서 작업입니다 내 작업 URL을 가진 새 페이지를보고 페이지에 렌더링 된 XML 파일을 볼 수 있지만 파일을 저장할 대화 상자는 열리지 않습니다. 어디서 잘못 되었나요? `포스트 'dbsinc/다운로드'

그리고 내보기에 나는이 방법으로 링크를 정의 :

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

을 그리고 그것은, 다운로드 대화 상자를 작동 감사

+0

'endit do'이란 무엇입니까? –

+0

복사 및 붙여 넣기 실수를했습니다. 그냥 끝 문장입니다. 이제는 올바른 코드 –

+0

으로 편집했습니다. 들여 쓰기를 수정하면 쉽게 읽을 수 있습니다. –

답변

0

나는 내가 길을 알아 냈다고 생각 링크를 클릭하면 열립니다.

+0

이 문제의 해결책입니까? 그렇다면 시스템에서 시간 초과 기간을 제공 한 다음 해답을 솔루션으로 선택할 수 있습니다. 그리고, 그렇다면 가독성을 위해 포맷하십시오. –