如何使用公共活动gem作为通知系统?

时间:2015-10-23 05:09:32

标签: ruby-on-rails ruby activerecord railscasts public-activity

虽然我之前曾问过这个问题,但没有得到任何有用的答案

我想要做的是使用公共活动gem建立一个通知系统,我遵循这个railscast,一切正常。我有一篇文章和评论模型,用户可以对彼此的文章发表评论,文章所属的用户将在其活动供稿中得到通知,但问题是活动页面显示所有用户的活动,但现在我想要仅向文章所属的特定人员展示活动。表示如果用户点击活动按钮,他们只会看到文章中发生的活动。有没有办法实现这一目标?提前谢谢。

到目前为止我曾尝试过,但它似乎无法正常工作

activities_controller.rb

public static void printMap(Map mp) {
    Iterator it = mp.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pair = (Map.Entry)it.next();
        System.out.println(pair.getKey() + " = " + pair.getValue());
    }
}

1 个答案:

答案 0 :(得分:1)

请将您的活动的收件人设置为这样(假设您的评论模型属于文章模型):

racked recipient: ->(controller, model) { model && model.article.user }

您可能会觉得这很有用:How to set up the recipient id in public activity

现在,如果current_user是收件人,则获取您的活动:

PublicActivity::Activity.order('created_at desc')
                  .where(recipient_id: current_user.id)
                  .where('owner_id not in (?)', current_user.id)
                  .where(trackable_type: "Comment",  owner_type: "User")
                  .all