我正在查看公共(public)事件 Gem Railscast Vid。 ( http://railscasts.com/episodes/406-public-activity )
我当前的数据库查找/存储除了 recipient_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">
我希望 recipient_id 是正在执行操作的用户....
例如
如果我喜欢 Tom 的帖子......我希望 Tom 的 ID 成为 recipient_id,我将成为 owner_id。
我目前已经设置了一个收件人 ID....使用我的 Likes Controller 中的代码....但它只将收件人 ID 设置为当前用户....这不是我想要的:(
喜欢 Controller
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
我需要创建一个方法还是什么。请帮助.....新手
最佳答案
tracked recipient: ->(controller, model) { model && model.user }
假设 Tom 是被跟踪对象的用户。否则根据您的应用程序更改 model.user
关于ruby-on-rails - 如何在公共(public)事件中设置收件人ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17131414/