ruby-on-rails - 如何在公共(public)事件中设置收件人ID

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

我正在查看公共(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/

相关文章:

javascript - history.back(-1) 没有刷新最后一页?

ruby-on-rails - 基于角色的 RESTful 资源的应用程序结构

javascript - 提供 "In progress".. ."Done"通知的最简单方法?

ruby-on-rails - 没有图像时如何在回形针中显示隐藏图像

ruby-on-rails-3 - 使用 SendGrid 时是否使用默认发件人名称?

ruby - activerecord 对象 API 位于哪里?

ruby-on-rails - 大写 f.text_field

ruby-on-rails - 保存安装 gem 的不同方式的位置?

ruby-on-rails - Presenter 的未定义局部变量或方法 `params'

ruby-on-rails-3 - Rails做一些事情并重定向?