小编AnD*_*Fag的帖子

csv文件的send_data返回文件的文本,而不是文件

美好的一天!我想下载自动生成的文件qwerty.csv,但它只返回文本"12345"(没有文件).你能帮助我吗?

UI

<script type="text/javascript">
function getCsv() {
    var ids = getSelectedRecordIds();
    $.post('/payments/form_csv.csv', { ids: ids }, function(data) {});
}
</script>
Run Code Online (Sandbox Code Playgroud)

调节器

def form_csv
    csv_string = CSV.generate do |csv|
        csv << ["12345"]
    end

    respond_to do |format|
        format.csv {
            send_data csv_string, :type => 'text/csv; charset=utf-8; header=present', :disposition => "attachment; filename=qwerty.csv", :filename => "qwerty.csv"
        }
    end
end
Run Code Online (Sandbox Code Playgroud)

在控制台中

Started POST "/payments/form_csv.csv" for 127.0.0.1 at 2012-06-18 18:18:11 +0400 
Processing by PaymentsController#form_csv as CSV
  Parameters: {"ids"=>["18\n\t  "]}
  Rendered text template (0.0ms)
Sent data qwerty.csv (0.4ms) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

7
推荐指数
1
解决办法
1万
查看次数