我想在我的应用中查询活动对象。我正在使用public_activity
gem,我有一个与几个模型相关的活动列表,我想列出最近的独特活动。
基本上我想查询特定跟踪的最新活动。我们假设我跟踪了相似的按钮,而ID
29
是ID=29
。我想查询跟踪@activities = PublicActivity::Activity.order("created_at desc").where(owner_id: current_user.id)
和其他跟踪ID的最新(一个)实例。我不太了解对rails的查询。现在,这是我唯一显示所有活动的行:
id activity_id description created_on
1 3 Like yesterday
2 3 Unlike two days ago
3 6 Comment yesterday
4 7 Review yesterday
5 7 Review two days ago
我们说我的活动表如下:
@activities
我想将每个活动ID的最新条目提取到id activity_id description created_on
1 3 Like yesterday
3 6 Comment yesterday
4 7 Review yesterday
变量中,如下所示:
public_activity
{{1}}是否有解决方法?
答案 0 :(得分:0)
您可以使用group
和select
的组合来完成此任务。
PublicActivity::Activity.
select("MAX(created_at) as when, trackable_type").
group("trackable_type").
where(owner_id: current_user.id)
这是输出
+-------------------------+-------------------------+
| trackable_type | when |
+-------------------------+-------------------------+
| Report | 2015-11-27 20:25:31 UTC |
| QuickAnswer | 2016-01-04 23:36:21 UTC |
| Comment | 2015-10-23 15:35:32 UTC |
| TakenExam | 2016-01-04 23:46:11 UTC |
| SeenVideo | 2015-08-23 21:27:58 UTC |
| Provider | 2015-09-17 23:47:40 UTC |
| AnswerForRecommendation | 2015-08-18 15:13:03 UTC |
| Subscription | 2015-08-24 08:37:08 UTC |
+-------------------------+-------------------------+