在导出到.CSV时使用Model.where带有self.id或类似名称>> [

问题描述 投票:0回答:1
我正在根据导出按钮处于打开状态的当前case_main“显示”页面将数据导出到CSV。我相信我需要与以下内容类似的东西,但是我无法对其进行任何排列。任何引用self.id或:id的尝试都将导致错误或nil。

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。我相信我需要与以下内容类似的内容,但我无法对其进行任何排列。...

ruby-on-rails
1个回答
0
投票
问题是您的模型没有构成

id

© www.soinside.com 2019 - 2024. All rights reserved.