mailboxer - получить получателя сообщения

Я могу получить последнего отправителя сообщения:

conversation.receipts_for (Текущий_пользователь).last.message.sender.name

но не может получить получателя (ей) того же сообщения. Я хотел бы отобразить gmail-esk:

Имя отправителя, Имя получателя | Тема | Дата

Есть идеи?

2 ответа

Решение

Я создал этот метод в файле помощника:

  def participant_names(conversation)
    conversation.receipts.reject { |p| p.receiver == current_user }.collect {|p| p.receiver.name }.uniq.join(" ,")
  end

Это делает, удаляя current_user из объекта диалога, а затем создает новый массив, который содержит имена (в данном случае пользователей) этого объекта диалога. метод.uniq гарантирует, что имя каждого пользователя будет отображаться только один раз (в случае, когда было много сообщений назад и вперед). Наконец запятая разделяет их.

E сть participants метод с почтовым ящиком, но я считаю, что нет получателя (ей). Вместо этого я создал это:

recipient = conversation.participants.find { |p| p != current_user }

Обратите внимание, что current_user исходит из устройства

Другие вопросы по тегам