Billedtime.where(case_main_id: self.id).each do |time|
使用Billedtime.all.each做| time |让代码运行,但是很明显,它可以捕获所有内容,而不仅仅是当前case_main的计费时间。
case_main有两个一对多的帐单时间和订单项。我正在尝试将特定case_main的记帐时间+订单项合并到单个.CSV导出中。
这里是代码:
型号:
def self.to_csv
desired_columns = ["Client Code",
"Case Name" ,
"Date",
"Description",
"Hours",
"Charge",
]
CSV.generate(headers: true) do |csv|
# Header columns
csv << desired_columns
# Data columns
Billedtime.where(case_main_id: self.id).each do |time|
csv <<
[
time.case_main.client.client_code,
time.case_main.case_name,
time.billedtime_date,
time.billedtime_description,
time.billedtime_hours,
time.billedtime_total
]
end
Lineitem.where(case_main_id: self.id).each do |line|
csv <<
[
line.case_main.client.client_code,
line.case_main.case_name,
line.lineitem_date.to_date,
line.lineitem_description,
' ',
line.lineitem_total
]
end
end
end
控制器:
def show
@case_mains = CaseMain.where(:id => @case_main.id).limit(5)
respond_to do |format|
format.html
format.csv { send_data @case_mains.to_csv, filename: "case-#{Date.today}.csv"}
end
end
查看:
<%= link_to "Export Billed Items", case_main_path(format: "csv") %>
谢谢!
我正在根据导出按钮处于打开状态的当前case_main“显示”页面将数据导出到CSV。我相信我需要与以下内容类似的内容,但我无法对其进行任何排列。...
id