虽然我之前曾问过这个问题,但没有得到任何有用的答案
我想要做的是使用公共活动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());
}
}
答案 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