que tienen una relación padre/hijo en mi solicitudRails Active Record seleccione padre e hijo como un resultado
class Polling
has_many :alerts, :dependent => :destroy
class Alert
belongs_to :polling
En mi página de índice para las alertas, que necesitan mostrar algunos datos de cada padre, y esto los resultados en dos consultas
Alert Load (6.1ms) SELECT * FROM (SELECT * FROM "ALERTS" INNER JOIN "POLLINGS" ON "POLLINGS"."ID" = "ALERTS"."POLLING_ID" ORDER BY "ALERTS"."ID" DESC) WHERE ROWNUM <= 1
Polling Load (1.8ms) SELECT "POLLINGS".* FROM "POLLINGS" WHERE "POLLINGS"."ID" = 10113 AND ROWNUM <= 1
Obviamente, esto hace que el tiempo de carga de las páginas bastante horrible ya que tiene que recorrer cada uno y tire del objeto padre también.
he intentado un par de cosas, tales como
> Alert.joins(:polling).where(...)
> Alert.includes(:polling).where(...)
> Alert.joins(:polling).select('*').where(...)
Y cada vez que tengo dos preguntas distintas cuando visite mi página de índice. Uno para cada Alerta, y luego otro para obtener sus datos principales. ¿Cómo puedo hacer esto en una línea para que cuando retire las alertas también obtenga sus datos principales asociados? No parece haber una manera de hacerlo desde el otro lado porque si hago un Pollings.where(...)
no atrapa a los niños como un grupo.
Definitivamente está en el camino correcto con el método includes. El otro ángulo sería probar Polling.includes (: alerts) .where (...). ¿Puedes publicar tu código de vista? – steakchaser
El problema es que tenemos que ir desde el lado del niño, no del lado de los padres. – Oranges13
¿No quieres precargar? http://apidock.com/rails/ActiveRecord/AssociationPreload/ClassMethods/preload_associations – toxaq