2017-10-12 2 views
0

J'ai besoin d'un contrôleur pour transmettre les enregistrements enfants des parents qui correspondent à une certaine portée. J'aimerais que cette portée soit sur le dossier parent. Je sais que la réponse est probablement de me regarder en face, mais la bonne combinaison de google recherches me trompe.Comment obtenir les enregistrements enfants d'un parent dans Rails 5

Répondre

0

Si vous souhaitez que votre solution soit encore un ActiveRecord::Associations::CollectionProxy essayer Children.where(parent_id: Parent.genies.ids) que vous pouvez ensuite tourner dans une portée.

scope: children_of_genies, -> { where(parent_id: Parent.genies.ids)

+0

Merci! C'est exactement ce que je voulais. – jfr

0

Scopes retourner un ActiveRecord_Relation, pour obtenir children pour chaque membre de celui-ci, vous pouvez utiliser collect:

@children_of_genies = Parent.genies.collect { |p| p.children }

+1

ou 'map':' @children_of_genies = Parent.genies.map (&: enfants) ' – fanta

+0

@fanta +1, j'utilise toujours recueillir quand je dois créer un nouveau tableau et carte quand je Je suis en train de modifier un existant, mais c'est juste ma préférence, merci de l'avoir ajouté en commentaire! – FanaHOVA

+0

J'aime votre réponse - certainement le moyen le plus facile de le faire, mais @abax a obtenu ce dont j'avais besoin – jfr