ruby-on-rails - Rails ActiveRecord 选择按时间戳排序的不同记录
问题描述
在下面的数据表中:
我正在尝试从该表中选择基于 、 和 列不同itemable_id
的itemable_type
记录user_id
。我还想要按 . 排序的记录last_viewed_at
。在 Rails 中,我已经能够使记录变得不同,但是我尝试的每一种方式总是获取记录 ID1
而不是4
for ThingType1
that has itemable_id 32
. 本质上,我试图最终得到的记录集是一个 ID 为 4、3 和 2 的行。我怎样才能有效地做到这一点?
解决方案
您可以使用group获取一组不同的记录,然后按asc
或排序它们desc
-
UserItemView.select(:user_id, : itemable_type, :itemable_id).group(:user_id, : itemable_type, :itemable_id).order(last_viewed_at: :desc)
推荐阅读
- vba - 替换特殊字符有时不起作用(MS Access/VBA)
- java - 在android studio中的按钮上显示带有计时器的锁定按钮
- mapbox - 单击开始导航时 Mapbox 导航崩溃
- windows - 带有 PID 的杀死进程的 Windows 模拟
- javascript - jQuery,动画仅适用于 1 张图片
- python - 2 个混淆矩阵,1 个颜色条
- apache-spark-sql - spark-sql 中的日期转换
- c - C 到 Mips 转换嵌套函数哪些寄存器保存在堆栈上?
- sql - 将时间戳分解为每天的小时间隔
- c# - Unity Google Play 排行榜 UI 崩溃