我尝试基于Rails 4中URL中的参数导出CSV表。
URL参数看起来像这样的“ classes?date = 2018-08-01”,并且根据URL日期,视图会更改显示的表以及给定月份的数据。我要导出这些数据。但是,“导出”按钮始终仅下载当月的数据。我在做什么错了?
我添加了一个简化的代码,而不是确切的副本。因此,如果您需要查看代码中的更多内容,请写评论。
控制器:
def index
@date = if params[:date].present?
Time.zone.parse(params[:date])
else
Time.zone.now
@classes = Class.includes(:teacher).on_month(@date.to_date)
respond_to do |format|
format.html
format.csv { send_data @classes.to_csv }
end
end
查看:
= link_to 'Export', classes_path(@classes, format: :csv)
型号:
def self.to_csv
column_names = %w{ Teacher Class }
CSV.generate(headers: true) do |csv|
csv << column_names
all.each do |class|
csv << [class.teacher.name, class.class_name]
end
end
end
答案 0 :(得分:2)
在导出链接中,您应该包括日期而不是类,因为如果缺少params[:date]
,则说明您使用的是当前日期。
= link_to 'Export', classes_path(date: @date, format: :csv)