When you do Something.find(array_of_ids)
in Rails, the order of the resulting array does not depend on the order of array_of_ids
.
Is there any way to do the find and preserve the order?
ATM I manually sort the records based on order of IDs, but that is kind of lame.
UPD: if it's possible to specify the order using the :order
param and some kind of SQL clause, then how?
Best Answer
Oddly, no one has suggested something like this:
As efficient as it gets besides letting SQL backend do it.
Edit: To improve on my own answer, you can also do it like this:
#index_by
and#slice
are pretty handy additions in ActiveSupport for arrays and hashes respectively.