web-dev-qa-db-fra.com

Ruby rechercher et retourner des objets dans un tableau basé sur un attribut

Comment pouvez-vous parcourir un tableau d'objets et renvoyer l'objet entier si un certain attribut est correct?

J'ai ce qui suit dans mon Rails app

array_of_objects.each { |favor| favor.completed == false }

array_of_objects.each { |favor| favor.completed }

mais pour une raison quelconque, ces deux retournent le même résultat! J'ai essayé de remplacer each par collect, map, keep_if aussi bien que !favor.completed au lieu de favor.completed == false et aucun d'entre eux n'a fonctionné!

Toute aide est grandement appréciée!

29
fardin
array_of_objects.select { |favor| favor.completed == false }

Retournera tous les objets terminés est faux.

Vous pouvez aussi utiliser find_all au lieu de select.

29
Babar

Pour le premier cas,

array_of_objects.reject(&:completed)

Pour le deuxième cas,

array_of_objects.select(&:completed)
11
Wand Maker

Vous devez utiliser Enumerable#find_all pour obtenir tous les objets correspondants.

array_of_objects.find_all { |favor| favor.completed == false }
2
Arup Rakshit