在下面的数据表中:
我正在尝试从该表中选择基于 、 和 列不同itemable_id
的itemable_type
记录user_id
。我还想要按 . 排序的记录last_viewed_at
。在 Rails 中,我已经能够使记录变得不同,但是我尝试的每一种方式总是获取记录 ID1
而不是4
for ThingType1
that has itemable_id 32
. 本质上,我试图最终得到的记录集是一个 ID 为 4、3 和 2 的行。我怎样才能有效地做到这一点?
在下面的数据表中:
我正在尝试从该表中选择基于 、 和 列不同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)