ruby-on-rails - raw - ruby sort_by descending
Combina dos matrices de ActiveRecord y ordena por created_at (2)
Estás muy cerca. Concatenar las matrices se hace con el signo más:
materials = books + articles
La ordenación de la matriz combinada se puede realizar llamando al método sort_by
(mezclado desde Enumerable
) y pasando el atributo con el prefijo &:
materials.sort_by(&:created_at)
Esto no será bueno en cuanto a rendimiento para grandes conjuntos de resultados. Puede considerar derivar los modelos Libro y Artículo de una clase padre (como Material) si son similares, usando STI (herencia de tabla única) para almacenarlos en la misma tabla y usar find
con una cláusula order
para que la base de datos pueda la clasificación para ti.
books = Book.find(:all)
articles = Articles.find(:all)
Al leer de http://guides.rubyonrails.org/layouts_and_rendering.html , sabía que podía hacer algo como:
<%= render :partial => [customer1, employee1, customer2, employee2] %>
y usaría parciales del cliente y del empleado según corresponda.
Entonces quiero hacer algo como eso:
materials = books + articles
materials.sort_by_created_at
y en la vista:
<%= render :partial => materials %>
¿Cómo hacer la fusión y clasificación de dos matrices ActiveRecord? ¡Gracias por la ayuda!
También puede usar Array#concat
para combinar dos matrices.