【问题标题】:Tracking and displaying likes using public activity使用公共活动跟踪和显示喜欢
【发布时间】:2015-11-02 12:34:11
【问题描述】:

我一直在试图弄清楚如何制作它,以便我可以创建一个活动页面,列出其他用户对您 OWN 个人帖子的喜欢。就我而言,我没有朋友或关注系统,所以实际上任何注册的人都可以喜欢一个帖子。我一直在到处寻找,但找不到如何完成的示例

目前,我已经在我的 post 控制器中定义了一个类似的方法

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

我的 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 %>

截至目前,我的通知页面没有显示任何内容。我如何去显示一个提要,显示我的帖子从其他用户那里收到的所有喜欢。非常感谢

【问题讨论】:

    标签: ruby-on-rails public-activity


    【解决方案1】:

    当在帖子上调用 upvote_by 时,会创建一个 ActsAsVotable::Vote 记录。因此,如果您想记录投票,则必须向此模型添加公共活动。

    class ActsAsVotable::Vote
      include PublicActivity::Model
      tracked only: [:create], owner: Proc.new{ |controller, model| model.user }
    end
    

    【讨论】:

    • @EddieCampain 不错!不要忘记接受答案:)
    猜你喜欢
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    相关资源
    最近更新 更多