こんにちは。CSVファイルのエスクポートファイルの生成の件で質問です。
現在、以下のようなシステムでエスクポートをプログラムしています。
controller
1 @customers = @customers.page(params[:page]).per(30) 2 respond_to do |format| 3 format.html 4 format.csv{ send_data @customers.generate_csv, filename: "customers-#{Time.zone.now.strftime('%Y%m%d%S')}.csv" } 5 end
views
1<div class="heading"><h2>インポート</h2></div> 2 3<%= form_tag import_customers_path, multipart: true do %> 4 <table width="90%"> 5 <tbody> 6 <tr> 7 <th colspan="3">CUSTOMER_CSVファイルインポート</th> 8 </tr> 9 <tr> 10 <td><%= file_field_tag :file %></td> 11 <th><%= submit_tag "インポート", class: 'btn btn-danger' %></th> 12 <th><%= link_to 'エクスポート', customers_path(format: :csv), class: 'btn btn-danger' %></th> 13 </tr> 14 </tbody> 15 </table> 16<% end %> 17
model
1#customer_export 2 def self.generate_csv 3 CSV.generate(headers:true) do |csv| 4 csv << csv_attributes 5 all.each do |task| 6 csv << csv_attributes.map{|attr| task.send(attr)} 7 end 8 end 9 end
上記でエクスポートすると、
@customers = @customers.page(params[:page]).per(30)
に習い、表示された30件がエクスポートされます。
ここを全件エクスポートの処理にするにはどうすれば良いでしょうか?
尚、
@customers = @customers.all
とすると可能なのですが、件数が多すぎてページが表示出来ません。
よろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。