我正在通过查找一系列ID,并且我希望保持对象的顺序与我通过的顺序相同。我假设他们设置的顺序是模型中设置的主要顺序。
数组顺序
just items = [488800, 489404, 485616, 380112, 501101, 485606, 485612, 485619, 480304, 493609, 496200, 496203, 503000, 499111, 488802, 488825, 501700]
活动记录的顺序
@item_recomendations = CatalogItem.find(just_items)
@item_recomendations.map {|x| x.id }
=> [380112, 480304, 485606, 485612, 485616, 485619, 488800, 488802, 488825, 489404, 493609, 496200, 496203, 499111, 501101, 501700, 503000]
答案 0 :(得分:1)
@item_recomendations = CatalogItem.find(just_items).sort_by{|x| just_items.index x.catalog_item_id }
答案 1 :(得分:0)
如果性能不是问题(你应该先尝试这个并首先测试它来证明它是什么),只需自己迭代数组:
items.collect { |id| CatalogItem.find(id) }