私はユーザにテーブルをCSVにエクスポートできるようにしたいと思います。Rails - CSVエクスポート:ファイルダウンロードのプロンプト
だから私のコントローラでは、私はファイルの先頭に追加しました:
respond_to :html, :js, :csv
要求された形式はCSV形式であれば、私はまた、ヘッダーを設定しています:generate_csv_headers
ため
if params[:format] == 'csv'
generate_csv_headers("negotiations-#{Time.now.strftime("%Y%m%d")}")
end
コード(application_controller内):
def generate_csv_headers(filename)
headers.merge!({
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Content-Type' => 'text/csv',
'Content-Disposition' => "attachment; filename=\"#{filename}\"",
'Content-Transfer-Encoding' => 'binary'
})
end
また、という名前のビューも作成しました私のファイルを生成する:
<%- headers = ["Id", "Name"] -%>
<%= CSV.generate_line headers %>
<%- @negotiations.each do |n| -%>
<%- row = [ n.id,
n.name ] -%>
<%= CSV.generate_line row %>
<%- end -%>
を私はすべてのエラーを持っていないが、私は、ファイルをダウンロードするには、ブラウザからプロンプトを期待しながら、それは単に、CSVファイルの内容を表示します。
私は多くを読んだが、うまくいくものは見つかりませんでした。 アイデアはありますか?
ありがとう、p。
[このSOスレッド]でこのトピックに関するいくつかの良い議論(http://stackoverflow.com/questions/94502/in-rails-how-to-return-records-as-a-csv -file) – zetetic