2

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

我想做的是使用公共活动 gem 来构建一个通知系统,我遵循了这个railscast并且一切正常。我有一篇文章和一个评论模型,用户可以在其中评论彼此的文章,文章所属的用户将在他们的活动提要中收到通知,但这里的问题是活动页面显示所有用户的活动,但现在我只想向文章所属的特定人员显示活动。意味着如果用户点击活动按钮,他们将只会看到文章上发生的活动。有没有办法做到这一点?提前致谢。

我到目前为止所尝试的,但它似乎不起作用

活动控制器.rb

class ActivitiesController < ApplicationController
 def index
   @activities = PublicActivity::Activity.all.order("created_at desc")
                  .where(trackable_type: "Comment", owner_id: current_user.id, owner_type: "User")
 end
end
4

1 回答 1

1

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

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

您可能会发现这很有用:如何在公共活动中设置收件人 ID

如果 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
于 2015-10-23T06:39:18.643 回答