[英]Rails: Export CSV table based on URL parameters
我嘗試基於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
在導出的鏈接中,您應該包括日期而不是類,因為如果缺少params[:date]
,則您正在使用當前日期,因此在控制器中。
= link_to 'Export', classes_path(date: @date, format: :csv)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.