Rails导出为CSV文件

时间:2016-10-29 20:22:46

标签: ruby-on-rails ruby csv export-to-csv

部分有效。它生成文件,但输出不是我想要的。

控制器

@messages = Message.take(2)
  respond_to do |format|
    format.html
    format.csv { send_data @messages.to_csv }
  end

Message.rb

def self.to_csv
    CSV.generate do |csv|
          csv << Message.attribute_names
          Message.all.each do |message|
            csv << message.attributes.values
          end
    end
 end

我下载了CSV文件,它包含记录本身但不显示列和值

#<Message:0x007fca7a028338>,#<Message:0x007fca79a6bf58>

我希望Message属性如:

ID,text
1,hello
2,world

1 个答案:

答案 0 :(得分:1)

Message.take(2)返回Array。你需要ActiveRecord :: Relation。

尝试Message.limit(2)