나는 애플 리케이션에서 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 %>
을 그리고 그것은, 다운로드 대화 상자를 작동 감사
'endit do'이란 무엇입니까? –
복사 및 붙여 넣기 실수를했습니다. 그냥 끝 문장입니다. 이제는 올바른 코드 –
으로 편집했습니다. 들여 쓰기를 수정하면 쉽게 읽을 수 있습니다. –