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 は空です。どうしてか分かりません ?または問題を解決する方法。