簡體   English   中英

NoMethodError:Roo :: CSV:Class的未定義方法“生成”

[英]NoMethodError: undefined method `generate' for Roo::CSV:Class

我嘗試制作預定的每日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

有人可以幫助我嗎?

我不確定為什么這里需要Roo,但是僅對於導出csv文件而言,標准CSV庫就足夠了。 CSV.generate是標准庫中的一種方法,因此,要使用此方法,您必須在Importer文件中添加require'csv require 'csv'

您還需要刪除“ include Roo”以避免沖突。 但是,如果你仍然想的百畝工作,請更換CSV.generate通過::CSV.generate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM