Отслеживать, кто что сделал в Rails? - PullRequest
2 голосов
/ 29 июня 2009

Как лучше всего отслеживать, кто что делал в приложении Rails среднего размера? Перехватить чтение / запись всей базы данных и сохранить это в другой таблице?

Ответы [ 4 ]

7 голосов
/ 29 июня 2009

Вы можете довольно просто адаптировать Act_as_versioned для записи информации о том, какой пользователь выполнил операцию. Я бы посоветовал изучить этот плагин, так как версионирование редко является плохой идеей.

2 голосов
/ 29 июня 2009

Вы можете использовать Наблюдатели в обратных вызовах, таких как создание / обновление / удаление для нескольких моделей и сохранение данных в другой таблице / модели, но если вы хотите иметь вики-подобный сайт, лучше использовать acs_as_versioned.

1 голос
/ 29 июня 2009

Вместо того, чтобы переопределять, вы должны попробовать некоторые плагины, такие как acts_as_audited

acts_as_audited - расширение ActiveRecord, которое регистрирует все изменения в ваших моделях в таблице аудита.

или PaperTrail .

PaperTrail позволяет отслеживать изменения данных ваших моделей. Это хорошо для аудита или управления версиями. Вы можете увидеть, как модель выглядела на любом этапе своего жизненного цикла, вернуть ее к любой версии и даже восстановить ее после ее уничтожения.

В зависимости от ваших потребностей.

1 голос
/ 29 июня 2009

Если вы хотите «свернуть свое» решение, вы можете реализовать триггеры базы данных при вставке / обновлении / удалении, которые обновляют отдельную таблицу. В противном случае есть несколько коммерчески поддерживаемых приложений для аудита данных, которые можно приобрести и настроить для отслеживания и составления отчетов об этих активностях для вас на уровне базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...