2

我尝试制作预定的每日 csv 邮件。我在 Importer 类中放入:“include Roo”,然后放入 2 个函数:

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

有人可以帮我请求吗?

4

1 回答 1

3

我不确定你为什么在这里需要 Roo,但仅用于导出 csv 文件,标准CSV 库就足够了。CSV.generate是标准库中的一种方法,因此要使用它,您必须添加require 'csv'到 Importer 文件中。

您还需要删除“include Roo”以避免冲突。但如果您仍想使用 Roo,请替换CSV.generate::CSV.generate.

于 2015-12-30T17:54:56.447 回答