【发布时间】:2019-08-19 04:01:22
【问题描述】:
我创建了一个简单的 csv 导出生成器,但希望能够传递 created_at 参数,然后基于 2 个日期导出并导出所选日期之间的记录。
查看:
<%= date_select :start_date, @start_date%>
<%= date_select :end_date, @end_date %>
<%= link_to("Generate Report", report_path(format: :csv) %>
续:
def order_report
@start_date = params[:start_date]
@end_date = params[:end_date]
@user_orders = Order.where(seller_id: current_user).where(order_status: 2).where(["date(created_at) BETWEEN ? AND ? ", @start_date, @end_date])
respond_to do |format|
format.html
format.csv { send_data @user_orders.to_csv, filename: "orders-#{Date.today}.csv" }
end
end
型号:
def self.to_csv
CSV.generate do |csv|
csv << %w{ id created_at order_type order_price }
all.each do |order|
csv << [order.id, order.ctreated_at, order.order_type, order.order_price ]
end
end
end
但是结果是NULL:
SELECT "orders".* FROM "orders" WHERE "orders"."seller_id" = $1 AND "orders"."order_status" = $2 AND (date(created_at) BETWEEN NULL AND 空)
当我导出时,除了标题之外什么都没有导出。
我怎样才能成功地做到这一点?
【问题讨论】:
标签: ruby-on-rails ruby csv export-to-csv