Tengo una lista de eventos que busco. Estoy tratando de incluir a cada usuario asociado a este evento y cada perfil asociado a cada usuario. Los usuarios se incluyen pero no sus perfiles.
Creo que lo siguiente debería funcionar para usted.
Event.includes(users::profile)
Si desea incluir una asociación (la llamaremos C) de una asociación ya incluida (la llamaremos B), usaría la sintaxis anterior. Sin embargo, si también desea incluir D, que también es una asociación de B, es cuando usaría la matriz como se muestra en el ejemplo de la Guía de Rails .
A.includes(bees:[:cees,:dees])
Podrías continuar anidando las cosas así (si realmente lo necesitas). Digamos que A también está asociado con Z, y que C está asociado con E y F.
¿Cómo agregaría condiciones para los módulos incluidos? :)
Arup Rakshit
1
¿Cómo agregar allí un pedido?
Florian Widtmann el
66
Esta es una de esas respuestas mágicas que he encontrado varias veces por años y me salva el culo cada vez. Así es como deberían verse los documentos
Andrew
2
Para que esta guía sea la más agotadora: A.includes( { bees: { cees: {:dees, :ees} } })- para la construcción de muñecas rusas (es decir, A incluye b, que incluye c ... y así sucesivamente)
A.includes( { bees: { cees: {:dees, :ees} } })
- para la construcción de muñecas rusas (es decir, A incluye b, que incluye c ... y así sucesivamente)A.includes(bees: :cees).where(bees: { cees: { flagged: false }}).order("a.bees DESC").order("a.cees ASC")
Si alguien está haciendo un
respond_to
bloque para generar json anidados, puede hacer algo como:fuente
as_json
, de lo contrario, esto representa la cadena JSON.Consulte la solución de Joe Kennedy.
Aquí hay un ejemplo más legible (para mi futuro).
fuente