rails 数组维护顺序

Jer*_*ome 1 ruby arrays ruby-on-rails

使用硬编码数组

array = [30,29,31,13,10,12,6,7,8,9,11]
Run Code Online (Sandbox Code Playgroud)

尝试执行查询

 @pick = Item.where('id IN (?)', array).to_a
Run Code Online (Sandbox Code Playgroud)

选择的 Items 的顺序如何保持初始数组的顺序?

mik*_*kej 5

假设您在单个请求中获取所有项目(即没有分页),那么您可以在使用初始数组中的索引获取后对项目进行排序,例如

@pick = Item.where('id IN (?)', array).sort_by do |item|
  array.index(item.id)
end
Run Code Online (Sandbox Code Playgroud)