sort_by raw rails query left descending active ruby-on-rails arrays sorting activerecord merge

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.