send_data für die csv-Datei gibt den text der Datei, nicht die Datei

Guten Tag! Ich will download automatisch generierte Datei qwerty.csv, aber es gibt nur text "12345" (ohne Datei). Können Sie mir helfen?

UI

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

Controller

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

In der Konsole

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)
Completed 200 OK in 2ms (Views: 0.4ms | ActiveRecord: 0.0ms)

Aber es gibt keine Datei, Eingabeaufforderung,...

  • Vielleicht ist es nur eine Frage, wie Sie registriert Ihre Anwendungen/MIME-Typen. Was geschieht, wenn Sie auf eine *.csv-Datei in Ihrem Datei-browser? Hat LibreOffice (oder Excel) automatisch öffnen? Unbekannte/nicht registrierte txt MIME-Typen kann immer angezeigt werden in Ihrem browser.
  • >> Was passiert, wenn Sie auf eine *.csv-Datei in Ihrem Datei-browser? Hat LibreOffice (oder Excel) automatisch öffnen? Leider, ja, Excel öffnen, wird es automatisch =( Sehr ähnlichen Thema (ohne Beschluss) - stackoverflow.com/questions/7597414/...
  • Ich denke, es Falle über smart-browser, wo die CSV-Daten auf browser -. setzen Sie diese und hoffe, dass dies helfen config.action_dispatch.x_sendfile_header="X-Sendfile"
InformationsquelleAutor AnDragFag | 2012-06-18
Schreibe einen Kommentar