Rails 导出到 CSV 文件

Rails export to CSV file

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

控制器

@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>

我希望消息属性如下:

ID,text
1,hello
2,world

Message.take(2) returns 数组。你需要 ActiveRecord::Relation.

尝试Message.limit(2)