【问题标题】:How to use public activity gem as notification system?如何使用公共活动 gem 作为通知系统?
【发布时间】:2015-10-23 05:09:31
【问题描述】:

虽然我之前问过这个问题,但没有得到任何有用的答案

我想做的是使用公共活动 gem 来构建一个通知系统,我遵循了这个 railscast 并且一切正常。我有一篇文章和一个评论模型,用户可以在其中评论彼此的文章,文章所属的用户将在他们的活动提要中得到通知,但这里的问题是活动页面显示所有用户的活动,但现在我只想向文章所属的特定人员显示活动。意味着如果用户点击活动按钮,他们只会看到文章上发生的活动。有没有办法做到这一点?提前致谢。

到目前为止我尝试过的,但它似乎不起作用

activities_controller.rb

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

【问题讨论】:

    标签: ruby-on-rails ruby activerecord railscasts public-activity


    【解决方案1】:

    请将您的活动的接收者设置成这样(假设您的评论模型属于文章模型):

    racked recipient: ->(controller, model) { model && model.article.user }
    

    您可能会发现这很有用:How to set up the recipient id in public activity

    如果 current_user 是收件人,现在获取您的活动:

    PublicActivity::Activity.order('created_at desc')
                      .where(recipient_id: current_user.id)
                      .where('owner_id not in (?)', current_user.id)
                      .where(trackable_type: "Comment",  owner_type: "User")
                      .all
    

    【讨论】:

    • 不,@sonalkr132 它不起作用。任何其他建议...??
    • 假设您没有设置收件人,我已经更新了我的答案。
    • 我在评论模型中添加了收件人行,但现在它不起作用,用户@sonalkr132 的通知都是空白的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多