我一直在努力弄清楚如何制作它,以便我可以创建一个活动页面,列出其他用户在您自己的OWN个人帖子上的喜欢。在我的情况下,我没有朋友或跟随系统,所以任何注册的人都可以像帖子一样。我一直在寻找无法找到它如何完成的例子
目前,我已经在我的帖子控制器中定义了一个类似的方法
def like
@post = Post.find(params[:id])
@post.upvote_by current_user
redirect_to :back
end
我还有一个活动控制器:
class ActivitiesController < ApplicationController
def index
@activities = PublicActivity::Activity.where(trackable_type: "Post", trackable_id: current_user.post_ids, key: "post.like")
end
end
My Post模型如下所示:
class Post < ActiveRecord::Base
belongs_to :user
acts_as_votable
include PublicActivity::Model
tracked only: [:create, :like], owner: Proc.new{ |controller, model| model.user }
default_scope -> { order('created_at DESC') }
end
我的活动视图模板如下所示:
<% @activities.each do |activity| %>
<%= activity.inspect %>
<% end %>
截至目前,我的通知页面没有显示任何内容。如何显示显示我的帖子从其他用户收到的所有喜欢的Feed。非常感谢
答案 0 :(得分:0)
在帖子上调用upvote_by
时,会创建ActsAsVotable::Vote
条记录。因此,如果要记录投票,则必须向此模型添加公共活动。
class ActsAsVotable::Vote
include PublicActivity::Model
tracked only: [:create], owner: Proc.new{ |controller, model| model.user }
end