Ruby on Railsでファイルを返す

ファイルを返すには、アクション内でsend_file関数を呼び出す。引数はファイルのパス。
データを直接返すにはsend_data。
どちらも引数にファイル名を渡すことができる。こんな感じ。

send_file "/hoge/fuga.mp3", :filename => "hoge-fuga.mp3"

ヘッダのContent-Dispositionを良きに計らってくれる。
ただし、日本語は化ける可能性があるのでHTTP_USER_AGENTをみて文字コード変換するなどして対処。