1

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

架构数据库

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
4

1 回答 1

0

我把它放在模型中

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

tracked recipient: ->(controller, model) { model && model.user }
于 2013-06-16T11:04:54.487 回答