我正在使用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
答案 0 :(得分:0)
我把它放在Model
中假设recipient_id是被跟踪对象的用户。否则,根据您的应用程序更改model.user
tracked recipient: ->(controller, model) { model && model.user }