对我送的ID的数组控制器params[:ids] = [2,5,9,...]
排序无序的SQL结果基于原始数组顺序
现在如果我执行像Device.find(params[:ids])
的结果是基于数据库排序的查询。我如何根据原始数组排序结果,所以带有id 2的设备首先等等?
对我送的ID的数组控制器params[:ids] = [2,5,9,...]
排序无序的SQL结果基于原始数组顺序
现在如果我执行像Device.find(params[:ids])
的结果是基于数据库排序的查询。我如何根据原始数组排序结果,所以带有id 2的设备首先等等?
你可以看看了id
的指数与Array#index
:
ids = params[:ids]
Device.find(ids).sort_by { |device| ids.index(device.id) }
@ toro2k这不重复。使用Ruby不是排序SQL结果的唯一方法。 – Agis
你在使用哪个数据库? – Agis