我有一组用户。他们有很多要求。
# user.rb
has_many :requests
现在我想按最后请求created_at
时间戳排序。
因此,如果用户有最新请求(created_at
最接近当前时间的请求),则他们会#1等。
有什么想法吗?
我已经尝试了
User.includes(:requests).order('requests.created_at')
然而,通过第一个请求created_at时间戳对它们进行排序,这显然不是我想要的。我希望只检索他们的最后一个请求。然后按用户在日期创建的最后一个请求对用户进行排序,并按用户对用户进行排序。
更新 此外,如果用户没有任何请求,他们应该在底部。现在,如果他们没有任何东西,他们就会被放在首位。
答案 0 :(得分:1)
您必须按降序排序。尝试
User.includes(:requests).order('requests.created_at desc').first()
答案 1 :(得分:0)
<t t-if="quant is not Empty" /> # doesn't work
<t t-if="quant is not False" /> # doesn't work
您需要User.joins(:requests).includes(:requests).order('requests.created_at desc')
它才会对联接表进行排序。
joins
会为您预先加载includes
,它无法帮助您对requests
进行排序。
<强>更新强>
要融入这种情况,它可能看起来像这样
requests
第一个订单会将null值放在底部,然后按日期desc
排序