ダウンロード機能を作りたいsinatraアプリがあります。このダウンロードは、テーブルからデータを取得し、Excel を作成してユーザー用にダウンロードします。
require 'csv'
get '/download' do
data = [{:name => "john", :age => 12, :state => 'ca'}, {:name => "tony", :age => 22, :state => 'va'}]
# I want to download this data as excel file and the content of file should be as follows:
# name,age,state
# john,12,ca
# tony,22,va
# I don't want to save data as a temp file on the server and then throw to user for download
# rather I want to stream data for download on the browser. So I used this,
# but it is not working
send_data (data, :type => 'application/csv', :disposition => 'attachment')
end
私は何を間違っていますか?または、私がやろうとしていることを達成する方法は?http://sinatra.rubyforge.org/api/classes/Sinatra/Streaming.htmlをフォローしようとしていました
更新: 私はシナトラの send_data メソッドと結婚していません。ストリーミングがその期間サーバーをブロックする場合、私は代替案を受け入れます.