如何为以下 sql 创建 ActiveRecord

How can I create ActiveRecord for the following sql

如何为以下 Sql 查询创建 ActiveRecord 查询

SELECT device1.*
FROM devices device1
WHERE device1.id = (SELECT MAX(device2.id)
                 FROM devices device2
                 WHERE device2.user_id = device1.user_id);

我有 Device 个模型 user_id

我不想使用 find_by_sql 因为它 returns Array 而不是 ActiveRecord Array

我觉得是这样的:

Device.where(id: Device.select("MAX(id)").from('devices devices2').where("devices2.user_id = devices.user_id"))

这将产生:

SELECT "devices".*
FROM "devices"
WHERE "devices"."id" IN (
  SELECT MAX(id)
  FROM devices devices2
  WHERE (devices2.user_id = devices.user_id)
)