簡體   English   中英

Rails:基於URL參數導出CSV表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM