在 ruby 中使用包含子句时按顺序加载
load with order when using includes clause in ruby
我需要做以下事情:
我有一长串 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 模型。
我不确定在使用 includes 子句时如何排序。我也不知道有没有更好的办法解决这个问题!
有什么想法吗?最坏的情况,如果我需要使用普通的 postgres,我也很乐意这样做——但也不知道如何处理,我所有的想法都非常低效。
在订单子句中使用table_name.column_name
指定要订购的table:
User.includes(:photos).order('photos.created_at').where(:id => user_ids)
我需要做以下事情:
我有一长串 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 模型。
我不确定在使用 includes 子句时如何排序。我也不知道有没有更好的办法解决这个问题!
有什么想法吗?最坏的情况,如果我需要使用普通的 postgres,我也很乐意这样做——但也不知道如何处理,我所有的想法都非常低效。
在订单子句中使用table_name.column_name
指定要订购的table:
User.includes(:photos).order('photos.created_at').where(:id => user_ids)