Аудит ruby ​​gem не записывает созданные и обновленные - PullRequest
0 голосов
/ 07 июня 2019
  • ruby ​​"2.6.3"
  • камень "проверено", "4.8.0"
  • самоцвет "pg", "0.18.4"

Мне нужно уметь:

  1. поиск изменений по диапазону дат
  2. поиск во всех аудитах по диапазону дат, а затем получение самой последней записи каждой записи

В настоящее время ревизия записи имеет ноль для столбцов create_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. Как вы видите, create_at возвращается ноль, когда просматривает ревизии:

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

исходная запись в таблице отчетов имеет create_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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...