【发布时间】:2019-01-30 05:10:21
【问题描述】:
我在我的应用程序中添加了 csv 导出和分页功能。
父.rb
CSV_HEADER = %w[parent_1_firstname parent_1_lastname address]
def self.to_csv
CSV.generate do |csv|
csv << CSV_HEADER
all.each do |parent|
csv << [
parent.parent_1_firstname,
parent.parent_1_lastname,
parent.address
]
end
end
end
controller.rb
def main_admin
require 'csv'
add_breadcrumb "Admin"
@filterrific = initialize_filterrific(
Parent,
params[:filterrific],
select_options: {
with_status: Parent.options_for_status
}
) or return
@parents = @filterrific.find.paginate(:page => params[:page], :per_page => 10)
respond_to do |format|
format.html
format.js
format.csv { send_data @parents.to_csv }
end
rescue ActiveRecord::RecordNotFound => e
puts "Had to reset filterrific params: #{ e.message }"
redirect_to(reset_filterrific_url(format: :html)) and return
end
我面临的问题是当我在我的 main_admin.html.erb 页面上单击下载 CSV 时。下载的 CSV 只是前 10 个父母,但还有更多。就像大约300名父母一样。我无法弄清楚这个问题。请帮忙。
更新
if params[:format] == 'csv' then @filterrific.find.paginate(:page => params[:page], :per_page => 10)
respond_to do |format|
format.csv { send_data @parents.to_csv }
else
@parents = @filterrific.find.paginate(:page => params[:page], :per_page => 10)
respond_to do |format|
format.html
format.js
end
【问题讨论】:
-
您是否尝试删除分页?
-
@iGian 没有。我会尝试这样做。
-
@iGian 是的,如果我删除分页,它可以正常工作。但我需要分页
-
@iGian 知道如何修复它吗?
-
尝试使用 if
params[:format] == 'csv' then @parents=.... respond_with :csv else @parents = ....等。
标签: ruby-on-rails csv ruby-on-rails-5 export-to-csv