У меня есть массив объектов, и я хочу найти, какой элемент в массиве имеет определенный атрибут, равный значению, в частности, какой элемент в этом массиве имеет объект, у которого :parent_id равен 55.
:parent_id
55
Как я могу это сделать?
Чтобы найти индекс:
array.index{ |item| item.parent_id == 55 }
Чтобы найти предмет:
array.find{ |item| item.parent_id == 55 }
Я бы использовал Enumerable # select Docs
results = my_array.select do |item| item[:parent_id] == 55 end
array.collect{|a| a[:parent_id]==55 ? a : nil}.compact!
должен сделать работу.Сначала соберите все элементы, соответствующие вашим критериям, в новый массив, а затем удалите ложноположительные (ноль) элементы.