如何使用此PublicActivity ruby​​ gem获取recipient_id?

时间:2013-04-30 03:23:57

标签: ruby-on-rails ruby rubygems

我正在使用PublicActivity gem,这是在我的数据库中创建的

schema.db

create_table "activities", :force => true do |t|
    t.integer  "trackable_id"
    t.string   "trackable_type"
    t.integer  "owner_id"
    t.string   "owner_type"
    t.string   "key"
    t.text     "parameters"
    t.integer  "recipient_id"
    t.string   "recipient_type"
    t.datetime "created_at",     :null => false
    t.datetime "updated_at",     :null => false
  end

我可以在post.rb模型中使用此功能跟踪我网站内发生的所有帖子

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

通过这样做,我可以获得owner_id。我需要设置recipient:以使其获取值?现在,recipient_id是零。

我想在我的视图<%= link_to activity.recipient_id.name %>中最终使用类似的内容来获取活动所在的收件人的姓名

我正在尝试将其设置为post_id或user_id,但我得到一个未定义的局部变量或方法错误。

这是我正在跟踪的模型表

create_table "postcomments", :force => true do |t|
    t.text      "content"
    t.integer   "user_id"
    t.integer   "post_id"
    t.timestamp "created_at",      :null => false
    t.timestamp "updated_at",      :null => false
    t.text      "comment_content"
  end

1 个答案:

答案 0 :(得分:0)

我把它放在Model

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

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