来自 rails 的空 CSV 文件

Empty CSV file from rails

我是 rails 上 ruby 的新手,我在将数据导出到 csv 时遇到问题。我关注了以下视频:

https://medium.com/coderaga/rails-import-export-csv-data-without-gem-fbf2a36a84f6

我也将 require 'csv' 放入 application.rb 文件中。

我的 student.rb 型号有:

def self.to_csv(fields = column_names, options = {})
    CSV.generate(options) do |csv|
      csv << fields
      all.each do |student|
        csv << student.attributes.values_at(*fields)
      end
    end
end

我的 students_controller 有以下内容:

    def index
    @students=Student.all
    puts @students
    respond_to do |format|
      format.html
      format.csv{send_data @students.to_csv(['UIN', 'Name' ,'Section', 'Attempts', 'Score'])}
    end
  end

我认为 all.each 语句是空的,因为当我做 puts student.attributes.values_at(*fields) 时,什么也没有,所以这就是为什么没有被写入的原因。但我不确定如何解决它。

Student Load (0.3ms)  SELECT "students".* FROM "students"
#<Student:0x007f9a2386ddb8>
#<Student:0x007f9a2386dc78>
#<Student:0x007f9a2386db38>
  CACHE Student Load (0.0ms)  SELECT "students".* FROM "students"

请帮忙

尝试

where.each do |student|
  puts student #Debug
  csv << student.attributes.values_at(*fields)
end