Ruby on rails Rails获取仅涉及当前用户的活动提要
我正在使用rails应用程序上的public_activity gem获取所有当前_用户的追随者活动。它工作得很好,但我更喜欢只获取与当前用户相关的活动,因此它更像是一个通知系统,而不仅仅是活动 以下是我到目前为止在活动控制器中的内容Ruby on rails Rails获取仅涉及当前用户的活动提要,ruby-on-rails,ruby,notifications,ruby-on-rails-4,Ruby On Rails,Ruby,Notifications,Ruby On Rails 4,我正在使用rails应用程序上的public_activity gem获取所有当前_用户的追随者活动。它工作得很好,但我更喜欢只获取与当前用户相关的活动,因此它更像是一个通知系统,而不仅仅是活动 以下是我到目前为止在活动控制器中的内容 @activities_all = PublicActivity::Activity.order("created_at desc").where(owner_type: "User", owner_id: current_user.followed_users.
@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 }
如前所述,这提供了当前用户的追随者所做的所有活动(如在帖子上创建/评论)。我希望它能在我的追随者与我的帖子互动的所有活动中发挥作用,等等。因此,当用户在我的帖子上发表评论时,我希望它成为@activities的一部分
乍一看,我认为这是另一个我无法理解的查询(如果查询是正确的方式)
这里有一些前端代码,如果这有帮助的话
<% @activities.sort.each do |day, activities| %>
<h6><%= day.strftime("%B %d") %></h6>
<% for activity in activities %>
<% if activity.trackable %>
<div class="activity">
<p>
<%= activity_user_image(activity.owner) %>
<%= activity_user_name(activity.owner) if activity.owner %>
<%= render_activity activity %>
<span><%= activity.created_at.strftime("%I:%M %p") %></span>
</p>
</div>
<% end %>
<% end %>
<% end %>
谢谢大家的帮助。快乐假期对你的人际关系不是很确定,但像这样的事情应该行得通:
@user_activities = PublicActivity::Activity.order("created_at desc").where(owner_type: "User", owner_id: current_user.id).all
如果有人有这个问题,我会找到答案的 首先,我为每个活动添加了一个收件人
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
这只是显示当前用户的活动,而不是显示当前用户帖子上发生的所有用户活动。我想我需要找出如何将收件人添加到活动中以获得答案。看起来,我是通过在每个活动中添加收件人id来解决的。仍然需要完成它,以确保它的工作,但它看起来像它要。谢谢你看它没有压力,很抱歉我帮不了你。