我正在使用此代码生成一个 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
结尾
我需要为此编写一个规范,但我不知道从哪里开始。