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

时间:2019-09-17 12:19:13

标签: ruby-on-rails ruby

我有用于管理员日志的CSV生成器。我进行测试时遇到错误

  

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

     

NoMethodError:          undefined method`collect'for Mon,17 Jun 2019 14:16:10 CEST +02:00:Time

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

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

编辑:

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

  

失败/错误:csv << admin_log.action_type       NoMethodError:          未定义的“收集”方法,用于“新建”:字符串

1 个答案:

答案 0 :(得分:3)

您应向Array数组添加csv,如下所示:

csv << [admin_log.created_at, admin_log.action_type, admin_log.admin_email, admin_log.old_data, admin_log.new_data]