2012-03-09 4 views
1

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

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

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

+0

Взгляните на эту презентацию http://www.slideshare.net/danmckinley/etsy-activity-feeds-architecture. Он описывает архитектуру потоков действий, близкую к вашим потребностям. Надеюсь, вы найдете это полезным. – welldan97

+0

Спасибо, было интересно читать. Но для моих требований это, похоже, немного выше. – tonymarschall

ответ

1

простым способом для проверки AR деятельности обеспечивается Rails с Observer.

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

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

Путь между EventMachine и Observer может заключаться в использовании delayed jobs с наблюдателями. Если вам нужно что-то вычислить при аудите, это может позволить вам сделать это, не замедляя ваше приложение, как спящую черепаху. Есть несколько хороших советов here о Delayed Jobs.

 Смежные вопросы

  • Нет связанных вопросов^_^