我正在使用public_activity gem。
@num = PublicActivity::Activity.where(owner_id: current_user.id, key: "micropost.read").count
这将正确显示current_user在所有微博上读取的次数。但是,如果current_user已经读取了相同的微博多次,那么它也将计算这些数字。但我不希望这样。如果current_user多次读取相同的微博,我只想算一次。
我试过了
@num = PublicActivity::Activity.where(owner_id: current_user.id, key: "micropost.read").distinct.count
它没有显示任何错误消息,但它不起作用。
我试过了
@num = PublicActivity::Activity.distinct.where(owner_id: current_user.id, key: "micropost.read").count
它不起作用。
完成此操作的正确语法是什么?提前谢谢!
Ruby 2.3.1,rails 5.0.0.1
答案 0 :(得分:0)
尝试使用trackable_id查询相同内容。我正在使用pluck(:id),以便我的查询变得容易,因为它给了我一系列id。
@num = PublicActivity::Activity.where(owner_id: current_user.id, key: "micropost.read", trackable_id: Micropost.pluck(:id)).distinct.count