1
我使用這個代碼,它從報表類規範的測試導出CSV文件
class Reports::Donors < Reports::Report
def initialize(args = {})
super(args)
@campaign = args[:report]
@campaign.report.data[:donations][:tiers].each do |contribution_tier|
@data = []
tmp_arr = []
tmp_arr << ActionController::Base.helpers.number_to_currency(contribution_tier.amount_in_dollars)
@data << tmp_arr
@data << ['Date','User Name','Amount in dollars','Address','Email','State']
contribution_tier.contributions.sort{|a,b| a.amount_in_dollars <=> b.amount_in_dollars}.each do |c|
tmp_arr = []
tmp_arr << c.created_at
tmp_arr << c.user.full_name
tmp_arr << ActionController::Base.helpers.number_to_currency(c.amount_in_dollars)
tmp_arr << c.user.address
tmp_arr << c.user.email
tmp_arr << c.state.titleize
@data << tmp_arr
end
if @campaign.report.data[:donations][:non_tier][:sum] > 0
@campaign.campaign.open_contributions.sort{|a,b| a.amount_in_dollars <=> b.amount_in_dollars}.each do |c|
tmp_arr = []
tmp_arr << c.created_at
tmp_arr << c.user.full_name
tmp_arr << ActionController::Base.helpers.number_to_currency(c.amount_in_dollars)
tmp_arr << c.user.address
tmp_arr << c.user.email
tmp_arr << c.state.titleize
@data << tmp_arr
end
end
end
end
末
內在生成CSV導出文件,我需要爲此編寫一個規範的,但我不不知道從哪裏開始。