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 }