tutorial rubyonrails rails que guide espaƱol ejemplos descargar caracteristicas ruby-on-rails ruby-on-rails-3 activerecord

ruby on rails - rubyonrails - combina los resultados de dos consultas y ordena por created_at?



ruby on rails tutorial (2)

Buscando un método simple que utilice el registro activo para tomar datos de dos modelos, combinar los datos y luego ordenar la salida combinada por created_at.

Por ejemplo:

Supongamos dos modelos, comente y agréguele a ambos usuarios_

devuelve una lista combinada de comentarios y gustos de @ usuarios ordenados por fecha

Sé que puedo hacer esto en SQL pero realmente me gustaría una solución de registro activa.

¡Gracias!


¿Qué tal algo como (no probado):

class User < ActiveRecord::Base scope :activities_by_date, :joins(:comments).joins(:likes).order("created_at desc") end

Luego puede hacer @user.activities_by_date y dejar que la db haga todo el trabajo.


Creo que debería ser tan simple como:

combined_sorted = (User.comments + User.likes).sort{|a,b| a.created_at <=> b.created_at }