从rails的空CSV文件

时间:2018-04-23 02:33:26

标签: ruby-on-rails ruby ruby-on-rails-3

我是ruby on rails的新手,我在将数据导出到csv时遇到了麻烦。我已经关注了以下视频:

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

我在application.rb文件中也放了 require'csv'

我的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"

请帮忙

1 个答案:

答案 0 :(得分:0)

尝试

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