У меня была такая же проблема, я решил ее так:
mentions=["foo","bar","baz"]
ranked = User.where(:nickname.in => mentions).sort do |a, b|
mentions.index(a.nickname) <=> mentions.index(b.nickname)
end
Не самое элегантное решение, так как я сортирую в приложении, а не в ядре базы данных, но эй .. оно работает ( в небольших списках ).