我在 Rails 中导出到 CSV,一切似乎都正常,没有错误,并且正在生成文件,但只有列标题被导出,没有其他数据。
这是一些代码:
在控制器中:
@students = Student.where("START_DATE >= ? and END_DATE <= ? and COURSE_NAME like ?", params[:start_date], params[:end_date], params[:course_name]).select('name, course')
(...)
format.csv { send_data @students .to_csv }
在模型中:
def self.to_csv(options = {})
CSV.generate(options) do |csv|
csv << column_names
all.each do |valeo|
csv << valeo.attributes.values_at(*column_names)
end
end
end
我发现问题的原因是当我点击链接时
= link_to "Export Records", student_path(:format => :csv)
@students 是空的。我不知道为什么?或如何解决问题。