одним из способов было бы использовать find_all для ruby -
q = p.find_all{ |e| e.name == 'Clocks' }
, так как в этом коде используется поиск в ruby массиве методом грубой силы, производительность невелика. если вы ожидаете, что p будет содержать более нескольких десятков элементов, использование запросов к базе данных будет лучше с точки зрения производительности.