Как уведомления работают с драгоценным камнем Mailboxer?

Я пытаюсь понять, как настроить систему уведомлений с помощью Mailboxer.

Я уже использовал его для настройки внутренней системы обмена сообщениями, чтобы пользователи могли обмениваться сообщениями. Теперь я хотел бы использовать его для отправки уведомлений с сайта, чтобы уведомлять пользователей об изменениях их очков репутации или напоминать им о действиях, которые они должны выполнить. Что-то вроде выпадающих меню уведомлений Facebook или Stackoverflow.

Например, он может содержать следующие типы уведомлений:

  • User gets some points for performing an action:
    • "You received 50 points for helping #{user.name} with #{request.title}.
  • A reminder that the user must perform an action:
    • "You must review #{user.name}'s help with #{request.title}!
    • Будет ссылка на страницу для завершения этого действия.
  • User receives a reply to a message they sent:
    • "You've received a message from #{sender.name}"
    • Будет ссылка на сообщение.

Подробности:

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

  • Я хочу отформатировать каждый тип уведомления по-разному в раскрывающемся списке. Например, добавьте к каждому определенный глификон. Могу ли я использовать для этого поле уведомления type (используя его для установки условного выражения)? Как работает type? Могу ли я просто установить строку, например «репутация», в зависимости от уведомления?

  • Объекты можно передавать в метод notify. Я смущен целью этого. Как можно использовать этот объект? Какие объекты я хотел бы отправить?


Не стесняйтесь оставлять некоторую общую информацию об уведомлениях Mailboxer, а не отвечать конкретно на все вопросы.

Мне не повезло найти документацию по функциям уведомлений, поэтому был бы признателен, если бы кто-то, обладающий некоторыми знаниями Mailboxer, мог бы вмешаться в это. Заранее спасибо.


person domi91c    schedule 06.08.2014    source источник
comment
Вы можете проверить это: blog.meldium.com/home/2013/4/22/   -  person Pahlevi Fikri Auliya    schedule 10.09.2014
comment
@portOdin Вы выяснили, как работает уведомление? Или нашли что-нибудь полезное?   -  person rAzOr    schedule 18.12.2014
comment
Может быть, здесь вы найдете что-нибудь: github.com/mailboxer/mailboxer/issues/121   -  person halbano    schedule 27.12.2014


Ответы (1)


Это поздний ответ, но на всякий случай, если кто-то задаст этот вопрос, как я, вот что я в итоге сделал.

Существует метод идентификации пользователей, определенный как https://github.com/mailboxer/mailboxer#user-identities.

Если он возвращает электронное письмо, электронное письмо будет отправлено. Если он возвращает nil, электронное письмо не будет отправлено.

В почтовом ящике есть метод уведомления, и вы можете использовать его для отправки уведомлений как,

alice.notify("Hi","Bob has just viewed your profile!") 

И в mailboxer_email проверьте, является ли объект уведомлением или нет. Если это так, не отправляйте письмо.

def mailboxer_email(object)

    if object.class==Mailboxer::Notification
      return nil
    else
      email
    end
 end

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

person qubit    schedule 07.01.2015