【问题标题】:How to set up the recipient id in public activity如何在公共活动中设置收件人 ID
【发布时间】:2013-06-12 10:56:59
【问题描述】:

我正在查看公共活动 Gem Railscast 视频。 (http://railscasts.com/episodes/406-public-activity)

我当前的数据库看起来/存储除了收件人 ID 之外的所有内容......它显示为 nil

#<PublicActivity::Activity id: 108, trackable_id: 133, trackable_type: "Relationship",
owner_id: 1, owner_type: "User", key: "relationship.create", parameters: {}, 
recipient_id: nil, recipient_type: nil, created_at: "2013-06-16 07:37:28", 
updated_at: "2013-06-16 07:37:28">

我希望接收者 ID 是正在对其执行操作的用户....

例如

如果我喜欢 Tom 的帖子.....我希望 Tom 的 ID 成为收件人 ID,我将成为 owner_id。

我目前已经设置了收件人 ID....使用我喜欢控制器中的代码....但它只将收件人 ID 设置为当前用户....这不是我想要的 :(

喜欢控制器

class Like < ActiveRecord::Base
  include PublicActivity::Model
  tracked except: :destroy, owner: ->(controller, model) { controller && controller.current_user }

  **tracked except: :destroy, recipient: ->(controller, model) { controller && controller.current_user }**

  attr_accessible :dailypost_id, :user_id

  belongs_to :user
  belongs_to :dailypost


  default_scope order: 'likes.created_at DESC'
end

我需要创建一个方法还是什么。请帮助.....新的rails

【问题讨论】:

  • 请使用通用的 Ruby on Rails 标签,因为很少有人搜索有关特定 Rails 版本的问题。

标签: ruby-on-rails ruby ruby-on-rails-3 gem railscasts


【解决方案1】:
tracked recipient: ->(controller, model) { model && model.user }

假设 Tom 是被跟踪对象的用户。否则根据您的应用更改model.user

【讨论】:

    最近更新 更多