Ты очень близко. Конкатенация массивов выполняется со знаком плюс:
materials = books + articles
Сортировку объединенного массива можно выполнить, вызвав метод sort_by
(смешанный с Enumerable
) и передав атрибут с префиксом &:
materials.sort_by(&:created_at)
Это не будет хорошим показателем производительности для больших наборов результатов. Вы можете рассмотреть возможность получения моделей Book и Article из родительского класса (например, Material), если они похожи, используя STI (Single Table Inheritance) для сохранения их в одной таблице и используя find
с предложением order
, поэтому база данных может выполнить сортировку за вас.