1

Rails でダウンロードする CSV ファイルを作成しようとしていますが、データの周りにタグを付けずに CSV だけを送信することはできません。私のコントローラーには、次のものがあります。

  csv_string = CSV.generate do |csv|                                                                                                               
    headers = ['Header 1', 'Header 2']                                  
    csv << headers                                                                                                                                 
    @matches.each do |match|                                                                                                                     
      csv << match                                                                                                                                 
    end                                                                                                                                            
  end                                                                                                                                              
  send_data(csv_string, :filename => filename, :layout => false) 

これを実行するフォームは次のとおりです。

=form_tag log_path, :id =>'log_search_form', :multipart => true, :remote=>true do                                                                    
    .search_fields                                                                                                                               
            .panel.panel-default                                                                                                                 
                    .panel-heading                                                                                                               
                            Search Log File:                                                                                                     
                            =file_field_tag :search                                                                                              
                            =submit_tag "Find Matches", :class=>'btn btn-primary btn-xs'                                                         

[一致を検索] を押すと、csv ファイルをダウンロードするように求められますが、最初の行には次のように表示されます。

<textarea data-type="text/csv" data-status="200" data-statusText="OK">Header 1

そして、ファイルはで終わります

</textarea>

(レガシー)コードはremotipartを使用しています-レンダリングをオーバーライドしてテキストエリアを追加するのを止める必要があるようです。クリーンな CSV ダウンロードを取得するにはどうすればよいですか? ありがとうございました!

4

1 に答える 1

0

余分な問題はこれまで見たことがありませんが、私が管理している Rails アプリから取得した次のパラメーター化を<textarea>試してください。send_data(...)

# inside your format.csv handler...
# set the filename and csv_string variables...
send_data(csv_string, :type => 'text/csv', 
                      :disposition => :attachment, 
                      :filename => filename)
于 2016-04-28T22:00:43.260 に答える