0
也许是一个古怪的问题。做一个Model.all或类似的东西让我有点漂亮的数组输出,[#<Model id:5, name:"Blahblah">,#<Model id:5, name:"Etc">]
。有没有简单的方法将其转换为CSV/Excel格式的属性作为列?解析Rails控制台输出到Excel中
也许是一个古怪的问题。做一个Model.all或类似的东西让我有点漂亮的数组输出,[#<Model id:5, name:"Blahblah">,#<Model id:5, name:"Etc">]
。有没有简单的方法将其转换为CSV/Excel格式的属性作为列?解析Rails控制台输出到Excel中
是的。
使用FasterCSV gem从模型列表中生成CSV。
但是没有什么好的方法可以自动完成。所以你应该在模型中添加一个类方法,从数组中产生CSV。
例如:
class Model < ActiveRecord::Base
require 'FCSV'
def self.to_csv list
csv_string = FasterCSV.generate do |csv|
attributes_for_csv = [:id, :name]
csv << attributes_for_csv.map{|a| a.to_s.titlize}
list.each do |item|
csv << attributes_for_csv.map{|a| item.send(a)}
emd
end
...
end
Model.to_csv Model.all
警告:它不会是完美的,你仍然会得到启动,并与"
结尾的字符串。但删除开始和结束引号非常简单。