我正在使用STI并且有一个表Widget,其他一些子类继承自使用STI。我想要一个查询,它使用uniq类型获取每个对象的最后一次创建。
我有一个我想要的预定义类型数组,所以我们说:
types = ["type1", "type2", "type3"]
所以我的查询将是:(这不起作用)
Widget.where(type: types).uniq.reverse
我的目标是让每个对象的最后一个匹配其中一个类型..
答案 0 :(得分:1)
不是100%肯定,但这样的事情可能有效(未经测试):
ids = Thing.where(type: types).group(:type).maximum(:id).values
last_per_type = Thing.find(ids)
答案 1 :(得分:0)
Thing.select("distinct type")
顺便说一句,type
是rails中的特殊变量,不能用作列名。