1
  • 红宝石“2.6.3”
  • 宝石“审核”,“4.8.0”
  • 宝石“pg”,“0.18.4”

我需要能够:

  1. 按日期范围搜索修订
  2. 按日期范围搜索所有审计,然后获取每条记录的最新记录

目前,created_at 和 updated_at 列的记录修订版本为零。我可以report.revision_at(yesterday)但不是日期范围

所以我试着调查审计。我正在对它们进行分组auditable_id,看起来它是按记录分组的。然后我得到最新的。但这仅向我展示了更改的内容:

 Audited::Audit.where(auditable_type: "Report")
   .where(created_at: 7.months.ago..1.month.ago)
   .group_by(&:auditable_id)
   .map { |_, v| v.sort_by(&:created_at).max }

理想情况下,我想做这样的事情来获得我正在寻找的时间范围之间的最新修订

Reports.all.map do |report|
  report.revisions
    .where(created_at: 7.months.ago..1.month.ago)
    .sort_by(&:created_at).max
end

这是我查看report.revisions 时得到的信息。如您所见, created_at 在查看修订版时返回 nil :

[#<Report:0x000
  id: "100f5d9d-",
  device: "1-device-118",
  advisor: "system",
  created_at: nil,
  updated_at: nil>]

Report 表中的原始记录确实有 created_at 和 updated_at:

#<Report:0x0
 id: "100f5d9d-",
 device: "1-device-118",
 advisor: "system",
 created_at: Fri, 07 Dec 2018 03:15:37 UTC +00:00,
 updated_at: Fri, 07 Dec 2018 03:15:37 UTC +00:00>
4

0 回答 0