Rails CSV 生成器 - 2019 年 6 月 17 日星期一 14:16:10 CEST +02:00:Time in 的未定义方法 `collect'

mr_*_*cle 0 ruby ruby-on-rails

我有用于管理日志的 CSV 生成器。当我运行测试时出现错误

1) CsvAdminLogData::CsvAdminLogGenerator 创建具有正确值的 CSV 文件失败/错误:csv << admin_log.created_at

NoMethodError:2019 年 6 月 17 日星期一 14:16:10 CEST +02:00:Time 的未定义方法 `collect'

def call
  CSV.open(target_file, 'w', headers: LOG_HEADERS, encoding: 'UTF-8') do |csv|
    AdminPanelLog.dates_between(start_date, end_date).find_each do |admin_log|
      csv << admin_log.created_at
      csv << admin_log.action_type
      csv << admin_log.admin_email
      csv << admin_log.old_data
      csv << admin_log.new_data
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我尝试过类似admin_log.created_at.to_s但没有任何结果的事情。在这种情况下,我不能<<用来将此数据添加到 CSV 文件中?

编辑:

如果我发表评论,# csv << admin_log.action_type我将在另一行收到相同的错误

失败/错误:csv << admin_log.action_type NoMethodError:未定义“New”的方法`collect':字符串

Mar*_*pka 5

您应该将Arrays添加到csvArray,如下所示:

csv << [admin_log.created_at, admin_log.action_type, admin_log.admin_email, admin_log.old_data, admin_log.new_data]
Run Code Online (Sandbox Code Playgroud)