2015-11-02 1 views
2

Я пытался выяснить, как сделать так, чтобы я мог создать страницу активности, которая списывается с других пользователей на ваших собственных личных сообщениях. В моем случае у меня нет друга или следующей системы, так что буквально любой, кто подписывается, может понравиться сообщение. Я искал везде и не могу найти пример того, как это делаетсяОтслеживание и отображение предпочтений с использованием публичной активности

В настоящее время я определил как метод в моем почтовом контроллере

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 

Мои сообщения модель выглядит следующим образом:

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 

Моя деятельность просмотра templat e выглядит так:

<% @activities.each do |activity| %> 
    <%= activity.inspect %> 
<% end %> 

На данный момент на моей странице уведомления ничего не отображается. Как я могу показать фид, показывающий все понравившиеся мои сообщения, полученные от других пользователей. Большое спасибо

ответ

0

Когдавызывается на сообщение, создается запись ActsAsVotable::Vote. Поэтому вы должны добавить общественную деятельность к этой модели, если вы хотите регистрировать голоса.

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

Это сработало хорошо! Спасибо –

+0

@EddieCampain Ницца! Не забудьте принять ответ :) – Oleander

Смежные вопросы