Eu tenho uma lista de eventos que eu busco. Estou tentando incluir todos os usuários associados a este evento e todos os perfis associados a cada usuário. Os usuários são incluídos, mas não seus perfis.
Eu acredito que o seguinte deve funcionar para você.
Event.includes(users::profile)
Se você deseja incluir uma associação (denominada C) de uma associação já incluída (denominada B), use a sintaxe acima. No entanto, se você também deseja incluir D, que também é uma associação de B, é nesse momento que você usa a matriz, conforme indicado no exemplo do Guia do Rails .
A.includes(bees:[:cees,:dees])
Você pode continuar a aninhar inclusões assim (se realmente precisar). Digamos que A também esteja associado a Z e que C esteja associado a E e F.
Como você adicionaria condições para os módulos incluídos ..? :)
Arup Rakshit
1
como adicionar um pedido?
Florian Widtmann 12/01
6
Esta é uma daquelas respostas mágicas que eu encontrei várias vezes com anos de diferença e sempre me salva. É assim que os documentos devem se parecer #
Andrew # /
2
Para tornar este guia o mais desgastante um: A.includes( { bees: { cees: {:dees, :ees} } })- para a boneca russa como a construção (ou seja, A inclui b, que inclui c ... e assim por diante)
A.includes( { bees: { cees: {:dees, :ees} } })
- para a boneca russa como a construção (ou seja, A inclui b, que inclui c ... e assim por diante)A.includes(bees: :cees).where(bees: { cees: { flagged: false }}).order("a.bees DESC").order("a.cees ASC")
Se alguém estiver fazendo um
respond_to
bloco para gerar json aninhado, você pode fazer algo como:fonte
as_json
- caso contrário, isso renderiza a string JSON.Por favor, consulte a solução de Joe Kennedy.
Aqui está um exemplo mais legível (para o futuro eu).
fonte