Rails获取仅涉及current_user的活动源

我在我的rails应用程序上使用public_activity gem来获取所有current_users关注者活动。 它工作得很好,但我更愿意只获得与current_user相关的活动,因此它更像是一个Notification系统而不仅仅是Activities。

这是我目前在我的活动控制器中所拥有的

@activities_all = PublicActivity::Activity.order("created_at desc").where(owner_type: "User", owner_id: current_user.followed_users.map {|u| u.id}).all @activities = @activities_all.group_by { |t| t.created_at.beginning_of_day } 

如前所述,这给出了current_user的关注者所做的所有活动(比如在post上创建/评论)。 我更喜欢它,如果我可以让它工作在我的追随者与我的post互动的所有活动,等等。当用户评论和评论在我的post上时,我希望它成为@activities的一部分。

乍一看,我认为这是另一个查询,我只是无法弄清楚查询(如果查询是正确的方式)。

这是一些前端代码,如果这将有所帮助

  

谢谢大家的帮助。 节日快乐

如果其他人在路上遇到这个问题,我找到了答案

首先,我为每个活动添加了一个收件人。

 if @comment.save @comment.create_activity :create, owner: current_user, recipient: @design.user end 

然后我在活动中添加了另一个查询

 @activities_all = PublicActivity::Activity.order("created_at desc").where(recipient_id: current_user).where("owner_id not in (?)", current_user).all 

不太确定你的关系,但这样的事情应该有效:

 @user_activities = PublicActivity::Activity.order("created_at desc").where(owner_type: "User", owner_id: current_user.id).all