8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Padrinoでファイルをダウンロードさせる

Last updated at Posted at 2014-04-23

Padrinoで作ったウェブアプリケーションでCSVファイルをダウンロードさせようとした。Ruby on Railsだと以下のような感じでできる。

data=[[1, 2, 3], [4, 5, 6]]
csv=data.map{|x| x.join(",")}.join("\n")
send_data(csv,
          disposition: "attachment",
          type: "application/octet-stream",
          filename: "foo.csv")
end

しかし、padrinoの同名のヘルパメソッドsend_dataはobsoleteされてしまったようだ。どのようなものであったかは知らないけれども。
調べてみたところ、sinatraのヘルパメソッドを使って以下のようにすると実現できることが判った。

data=[[1, 2, 3], [4, 5, 6]]
csv=data.map{|x| join(",")}.join("\n").encode("Shift_JIS")
content_type "application/octet-stream"
attachment "bar.csv"
response.write csv

ExcelをインストールしたWindowsからこのコードを含むURIにアクセスすると、Excelで直接開くこともできる。

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?