Нет необходимости в цикле:
(hash.keys & keys).any? # => true
Пояснение:
.keys
возвращает все ключи в хэше в виде массива. &
пересекает два массива, возвращая любые объекты, которые существуют в обоих массивах. Наконец, .any?
проверяет, есть ли у пересечения массива какие-либо значения.