2009-12-01 7 views
0

아마도 이상한 질문입니다. Model.all 등을 사용하면 배열의 다소 예쁜 출력 인 [#<Model id:5, name:"Blahblah">,#<Model id:5, name:"Etc">]을 얻을 수 있습니다. 이 속성을 열로 변환하여 CSV/Excel 형식으로 변환하는 쉬운 방법이 있습니까?Parse Rails 콘솔 출력을 Excel로

답변

2

예.

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 

경고 :이 완벽 않을거야, 당신은 아직 시작 "로 끝나는 문자열을받을거야. 그러나 시작과 끝 따옴표를 제거하는 것은 꽤 쉽습니다.

관련 문제