Какова лучшая практика для аудита и отображения изменений AR? - PullRequest
1 голос
/ 09 марта 2012

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

Я знаю о Paper trail (не работает на всех типах отношений :(), версиях Vestal, acts_as_audit и т. Д., Но не знаю, как лучше использовать эти драгоценные камни, как описано в моем случае.

Какова наилучшая практика для аудита изменений AR, включая ассоциации и отображение в потоке действий с различными правами пользователя?

1 Ответ

1 голос
/ 16 марта 2012

Простой способ аудита AR-действий предоставляется Rails с помощью Observer .

Обозреватель позволяет добавить функцию обратного вызова на Модели. Затем вы можете обновить модель Acitivty , чтобы увидеть, что было изменено. Обратите внимание, что Observer не зависят от контроллера. Что или Кто бы ни изменил вашу модель, должен пройти через вашего наблюдателя. Недостатком является то, что это может замедлить ваше приложение.

Более эффективным, но и более сложным способом было бы использовать EventMachine . См. эту статью для ознакомления с ней.

Между EventMachine и Observer можно использовать отложенные задания с наблюдателями. Если вам нужно что-то вычислить во время аудита, это может позволить вам сделать это без замедления работы вашего приложения, как спящей черепахи. Вот несколько хороших советов здесь о Задержках.

...