我需要做以下事情:
我有一个巨大的ID列表(称为user_ids)。
我想将所有用户拉到:id => user_ids,还包括照片模型。但是,我希望照片模型按created_at排序(因为我需要知道用户发布到我们网站的第一张照片的日期)。
所以基本上,我想做:
User.includes(:photos).order(:created_at).where(:id => user_ids).each do |user|
user.photos.first
...
获取用户发布的第一张照片。现在,order子句指的是User模型,而不是Photo模型。
我不确定在使用include子句时如何订购。我也不知道是否有更好的方法来解决这个问题!
任何想法?最糟糕的情况是,如果我需要使用普通的postgres,我也很乐意这样做 - 但是没有关于如何处理这个问题的想法,我的所有想法都非常低效。
答案 0 :(得分:0)
在订单子句中使用table_name.column_name
指定要订购的表:
User.includes(:photos).order('photos.created_at').where(:id => user_ids)