Нужны рекомендации по созданию системы сообщений и сообщений на основе событий в Rails - PullRequest
2 голосов
/ 12 февраля 2010

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

  • Размещение 20 сообщений на форуме -> оповещение на главной странице с выделением пользователя, награждение значком
  • Вход на сайт 10 дней подряд -> поздравляю с сообщением пользователю на домашней странице
  • Комментируя 10 сообщений на форуме -> награда за значок форума

Будет ли это работа для конечного автомата, такого как AASM? Я не много играл с такими системами. Это был бы способ определить события или есть лучшие плагины / решения, которые приспособили бы этот тип поведения? Будем весьма благодарны за любые учебные пособия или рекомендации по подходу.

1 Ответ

1 голос
/ 13 февраля 2010

Кажется, что сложная часть здесь состоит в том, чтобы выяснить, как вы хотите поддерживать состояние, необходимое для определения, когда значок должен быть вручен. Плагины конечного автомата для рельсов не сильно вам в этом помогут.

Например, как кусок кода определит, вошел ли пользователь в систему 10 дней подряд? Как только вы это поймете, вы можете беспокоиться о том, как организовать обработку событий.

Вам нужно уведомлять их в режиме реального времени, когда они получают значок? Если это так, то вы можете легко сделать это с ActiveRecord :: Observer, но у него могут быть некоторые проблемы с задержкой при длительном запуске (http://api.rubyonrails.org/classes/ActiveRecord/Observer.html)

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

...