我试图找到一种方法来获取最旧的created_at值,以获取类中的最旧对象,所以我以后可以对其进行操作。
我正在尝试将所有项目添加到数组中,然后获取最旧的值,然后使用.where active record方法将其转换回该日期创建的对象。
这是我到目前为止的内容:
date_array=[]
buy_requests.each do |buy_request|
date_array << buy_request.created_at
end
date_array.min
但是我觉得有更简单的方法可以做到这一点。
我遇到的问题之一是,当我将日期添加到数组时,我不再具有创建日期的时间,因此我将无法再使用.where,一旦我使用.min获得了最早的日期。
谢谢。如果我不够清楚,请告诉我。
最佳答案
无需获取最早的时间戳,然后获取相应的对象,只需:
BuyRequests.order(:created_at).limit(1)
...这将受益于created_at上的索引,或者...
BuyRequests.first
...如果您的ID已按照先到先得的顺序可靠分配。
您可能想在相等的created_at时间戳记上平分秋色:
BuyRequests.order(:created_at, :id).limit(1)