我尝试制作一个计划的每日csv邮件。我在进口商类中输入:"包括Roo"然后我放了两个函数:
def self.daily_mail
Company.find_each do |c|
export_to_csv(c)
end
end
def self.export_to_csv(company)
@opportunities = company.opportunities
csv_data = CSV.generate do |csv|
csv << ["Opportunity Id", "Created At", "Request Id", "Champion Id", "Referral_Id"]
@opportunities.all.each do |opportunity|
csv << [opportunity.id, opportunity.created_at, opportunity.request_id, opportunity.champion_id, opportunity.referral_id]
end
end
end
在调度器类中,我编码:
task :export => :environment do
puts "Exporting..."
Importer.daily_mail
puts "done."
end
然而,当我尝试在我的终端中运行时:
rake export
我得到了:
rake aborted!
NoMethodError: undefined method `generate' for Roo::CSV:Class
有人能帮我吗?
我不确定为什么这里需要Roo,但仅用于导出csv文件,标准csv库就足够了。CSV.generate是标准库中的一个方法,因此要使用它,必须将require 'csv'
添加到Importer文件中。
您还需要删除"include Roo"以避免冲突。但如果您仍然想使用Roo,请将CSV.generate
替换为::CSV.generate
。