I am thinking about the best solution for a problem. Let\'s say that we have a list of ids of ActiveRecord model:
ids = [1, 100, 5, 30, 4, 2, 88, 44]
If you are using MySQL, you can use FIELD to order results:
FIELD
class User < ActiveRecord::Base def self.find_in_order(ids) self.where(id: ids).order("FIELD(id, #{ids.join(',')})") end end User.find_in_order([1, 100, 5, 30, 4, 2, 88, 44])