我尝试制作预定的每日csv邮件。 我把我的Importer类放在里面: “包括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
有人可以帮我请求吗?
答案 0 :(得分:3)
我不确定你为什么需要Roo,但仅用于导出csv文件,标准CSV library就足够了。 CSV.generate是标准库中的方法,因此要使用此方法,您必须将{"error":true,"message":"App\\Http\\Controllers\\HintController::_getHintsFromList(): Failed opening
required '..\/..\/FirePHPCore\/FirePHP.class.php' (include_path='\/var\/www\/build\/app\/Http\/lib:
.:\/usr\/share\/php:\/usr\/share\/pear')"}
添加到Importer文件。
您还需要删除“包含Roo”以避免冲突。但是,如果您仍想使用Roo,请将require 'csv'
替换为CSV.generate
。