长话短说。我是RubyOnRails的新手。我的开发团队的其他成员离开了公司,我是最后一个离开的公司。我正在接管他们都做过的代码。如何导出csv文件以将所有数据放在多行上?现在,代码将多个记录放入csv文件中的一行。
class CancelledDealCSVGenerator
require 'csv'
def self.generate_csv(deals)
CSV.open("#{AppConfig.cancelled_csv_folder}/CANNED.CSV", "a") do |csv|
deals.each do |deal|
csv << [deal.customer_number, deal.deal_number, deal.contract_number, deal.cancel_date]
end
end
end
end
这就是它应该看起来的样子
999999 AAA000 55555 6/23/2011 08:27
999998 AAA001 55554 6/23/2011 08:15
但这就是它的样子
999999 AAA000 55555 6/23/2011 08:27 999998 AAA001 55554 6/23/2011 08:15
答案 0 :(得分:0)
我不确定您使用的是什么CSV插件/ gem。如果它是一个简单的打开文件并写入文件的简单文件,那么这应该可行。
class Deal
def to_csv(delimiter=",")
[deal.customer_number, deal.deal_number, deal.contract_number, deal.cancel_date].join(delimiter)
end
end
class CancelledDealCSVGenerator
require 'csv'
def self.generate_csv(deals)
CSV.open("#{AppConfig.cancelled_csv_folder}/CANNED.CSV", "a") do |csv|
csv << deals.map(&:to_csv).join("\n")
end
end
end
答案 1 :(得分:0)
从评论中看起来你的问题不是真正的RoR代码,而是因为你正在查看EBCDIC系统上的文件。
您需要将文件从ASCII编码转换为EBCDIC(参见IBM ASCII TO EBCDIC conversion)
基本上你在看:
iconv -f IS08859-1 -t IBM-1047 canned.csv > converted.csv