2013-09-20 2 views
0

Мне нужно внедрить очень простую систему обмена сообщениями между двумя пользователями, и единственное требование - поддерживать каждый разговор между двумя пользователями отдельно. Интересно, можно ли и разумно использовать только одну модель Message(sender_id, recipient_id) для достижения цели.Система обмена сообщениями Simple Rails

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

  • Регистрация на user.id = recipient_id и user.id = sender_id, чтобы получить все сообщения, связанные с конкретным пользователем
  • Сортировать результаты по id противолежащим участникам (будь то sender_id или recipient_id) для формирования групп сообщений - chatboxes. Это, я думаю, самый сложный шаг, поскольку противоположный пользователь может быть отправителем или получателем в одном разговоре.
  • Дальнейшие результаты заказа внутри каждой группы по дате создания для отображения сообщений в их первоначальном порядке. Каждая группа обозначает другой разговор.

Я пробовал Mailboxer самоцветом, но это кажется излишним для этого случая. Я также думаю о другом решении, основанном на введении нового объекта Conversation с отношением «один ко многим» с сообщениями.

ответ

0

Я думаю, simple-private-messages решит вашу проблему. Это кажется простым и выглядит точно так, как вы ищите.

+0

Кажется хорошим, но то, что я точно ищу, - это способ группировать сообщения, которые принадлежат одному разговору между двумя людьми, например '@ user.conversations [0] .messages' – user1756971

0

Кажется, что нет такой легкой реализации обмена сообщений, которая включает группируя их по conversation. Лучшее решение, похоже, реализует его с нуля.

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