公共活动 - 仅显示有关自创对象的活动

时间:2014-01-16 19:36:33

标签: ruby-on-rails android-activity devise ruby-on-rails-4

我在Public Acticvity上关注了Ryan Bates教程。我正在尝试显示有关current_user拥有的对象的ONLY通知。

在我的情境中=> Comments

我的Activities Controller

class ActivitiesController < ApplicationController
  def index
    @activities = PublicActivity::Activity.order('created_at desc').where(owner_id: current_user.following_users, owner_type: "User")
  end
end

我正在使用current_user.following_users来获取所有关注的用户。如果他们上传图片就获得活动。

在此点:所有关注的用户都会显示活动,这就是问题所有活动。

我想只展示与current_user有关的活动,只展示有关他自己的对象的活动。

例如。

  • current_user上传图片,UserX对此图片的评论。我想要通知。

  • UserX对来自UserY的图片发表评论。我不想要这个通知。

现在,如果current_user跟随UserX,我将收到来自UserX活动的所有通知,而不仅仅是有关current_user的通知。

但我对如何实现这一目标完全无能为力。有没有人帮忙无人居住?

我发现了一个非常类似的问题,但我不明白答案 - &gt; Using public_activity with acts_as_follower and devise, how can I show only the user's activities and those of the people he follows?

另一个:Rails getting activity feed that only involves current_user

1 个答案:

答案 0 :(得分:2)

我认为您提出的功能有点超出了一般活动的范围,而是像通知一样。

“收件人”解决方案应该能够解决这个问题。但您可能仍希望所有者显示此活动以及current_user。如果是这样,您需要创建两个活动,并且需要解决方法而不是公开展示它们。所以,这可能有效,但重复记录和额外的代码。

更好的逻辑可能是在创建后处理活动,判断逻辑,并根据请求或后端发送通知(更好)。

注意:下面的无耻广告:)

我之前有过类似的担忧,发现很难再次将Public Activity的活动记录用于其他目的。所以我创建了一个gem simple_activity,它在显示活动时更简单,但又打开了重新使用它们的大门。这颗宝石还处于早期阶段,所以要小心谨慎。检查它是否有帮助。