Bạn có thể lấy cơ sở dữ liệu để thực hiện việc sắp xếp và tránh nhiều index
cuộc gọi, bạn chỉ cần nhớ rằng một LỆNH THEO SQL sắp xếp theo một biểu thức , không phải là cột :
whens = item_ids.collect.with_index { |id, i| "when #{id} then #{i}" }.join(' ')
items = Item.where(:id => item_ids).order("case id #{whens} end")