Создать внутреннюю систему сообщений с Rails
У меня есть пользователи, которые могут создавать DinnerEvent, которые содержат еду. Пользователь указывает предпочитаемую еду, используя таблицу соединений. Хотели бы создать внутреннюю систему сообщений, которая автоматически рассылает уведомления другим пользователям, которые "предпочитают" Еду в созданном DinnerEvent. Может ли кто-нибудь дать какое-нибудь руководство относительно того, как я могу приблизиться к этому или есть ли какие-нибудь хорошие справочные ресурсы там (не было большого количества удачи в поиске)? Подумал об ActiveMailer, но решил, что не хочу, чтобы люди постоянно получали спам в своих почтовых ящиках. Предпочел бы использовать только Rails для достижения этой цели.
1 ответ
Здесь много вариантов и множество вариантов использования для обдумывания. Может быть, вы можете начать с чего-то очень простого, что:
- Отслеживает последнюю дату / время входа для каждого пользователя
- На некоторой странице (определенной для вошедшего в систему пользователя) отобразите все DinnerEvents, созданные с момента последнего входа в систему, которые соответствуют их предпочтениям в еде. Должна быть простая Active Record, чтобы вытащить это.
- Продолжайте показывать этот список, пока они не отклонят его (запишите эту дату / время) или войдите снова
Полноценная система обмена сообщениями, вероятно, потребует более сложных вещей, таких как очереди для каждого пользователя, которые подписаны на основную очередь. И, возможно, дополнительное хранилище данных, такое как Redis. Я намеренно опускаю детали чего-то подобного сейчас; это гораздо большая тема.