Я хочу получить массив объектов ActiveRecord, заданных массивом идентификаторов.Чистый способ найти объекты ActiveRecord по id в указанном порядке
Я предположил, что
Object.find([5,2,3])
возвращает бы массив с объектом 5, объектом 2, то объект 3 в таком порядке, но вместо этого я получаю массив заказать в качестве объекта 2, объекта 3, а затем объект 5.
База ActiveRecord find method API упоминает, что вы не должны ожидать ее в указанном порядке (другая документация не дает этого предупреждения).
Одно потенциальное решение было дано в Find by array of ids in the same order?, но опция заказа не подходит для SQLite.
Я могу написать некоторый код ruby для сортировки объектов самостоятельно (несколько простых и плохо масштабируемых или лучшего масштабирования и более сложных), но есть ли лучший способ?
Откуда эти идентификаторы? Если это пользовательский интерфейс (через пользователя, который выбирает их), масштабирование не должно быть проблемой, то есть пользователь вряд ли потратит время на выбор 1000 идентификаторов). Если это база данных (например, из таблицы объединений), можете ли вы сохранить заказ в таблице соединений и вычесть находку на основе этого? – pauliephonic