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
警告:它不會是完美的,你仍然會得到啓動,並與"
結尾的字符串。但刪除開始和結束引號非常簡單。