我试图弄清楚如何使用Mailboxer设置通知系统。

我已经使用它来设置一个站点内消息传递系统,以便用户可以相互消息传递。现在,我想用它来从网站发送通知,以通知用户其信誉点的更改或提醒他们必须完成的操作。诸如Facebook或Stackoverflow的下拉通知菜单之类的东西。

例如,它可能包含以下类型的通知:

  • 用户获得执行操作的一些要点:
  • "You received 50 points for helping #{user.name} with #{request.title}.
  • 提醒用户必须执行一个操作:
  • "You must review #{user.name}'s help with #{request.title}!
  • 将链接到页面以完成该操作。
  • 用户收到对他们发送的消息的回复:
  • "You've received a message from #{sender.name}"
  • 将链接到该消息。

  • 以下是一些详细信息:
  • 我不希望所有通知都发送电子邮件。大多数只需要在通知菜单中看到。 Mailboxer中是否有一个选项可以控制通过电子邮件发送的内容,还是我必须绕过Mailboxer的邮件发送器?
  • 我要在下拉菜单中以不同的方式设置每种通知的格式。例如,将特定的glyphicon添加到每个。我可以为此使用通知type字段(使用它来设置条件)吗? type如何工作?是否可以根据通知将其设置为字符串,例如“信誉”?
  • 对象可以传递给notify方法。我对这个目的感到困惑。该对象如何使用?我要发送什么对象?


  • 随时保留有关Mailboxer通知的一些常规信息,而不是专门回答所有问题。

    我很不幸无法找到有关通知功能的文档,所以如果有一些Mailboxer知识的人可以对此进行介绍,我将不胜感激。提前致谢。

    最佳答案

    这是一个较晚的答案,但是以防万一有人像我一样遇到这个问题,这就是我最终要做的。

    有一个定义为https://github.com/mailboxer/mailboxer#user-identities的用户身份方法

    如果返回电子邮件,将发送一封电子邮件。如果返回nil,则不会发送电子邮件。

    邮箱器中有一个notify方法,您可以使用它以如下方式发送通知,

    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
    

    您可以在此处定义更复杂的逻辑,例如为某些类型的用户禁用电子邮件等。

    关于ruby-on-rails - 通知如何与Mailboxer gem一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25152031/

    10-11 22:47
    查看更多