Ruby on rails Rails:基于URL参数导出CSV表

Ruby on rails Rails:基于URL参数导出CSV表,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我尝试根据Rails4中URL中的参数导出CSV表 URL参数类似于“classes?date=2018-08-01”,并且根据URL日期,视图会使用给定月份的数据更改显示的表格。我想导出这些数据。但是,“导出”按钮始终仅下载当月的数据。我做错了什么 我添加了一个简化的代码,而不是精确的副本。因此,如果您需要从代码中看到更多内容,请编写注释 控制器: def index @date = if params[:date].present? Time.zone.par

我尝试根据Rails4中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
视图:

型号:

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
def self.to_csv
列名称=%w{Teacher Class}
CSV.generate(标题:true)do | CSV|

csv在导出链接中,您应该包含日期而不是类,因为在控制器中,如果缺少
params[:date]
,则您使用的是当前日期


=link\u to'Export',classes\u path(date:@date,format::csv)
在导出链接中,您应该包含日期而不是类,因为如果控制器中缺少
参数[:date]
,则您使用的是当前日期

=链接到“导出”,类\u路径(日期:@date,格式::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