Как я могу удалить пустые хэши из массива?
[{}, {}, :one, :two]
.compact не работает.
Используя reject, отклонить элементы в перечислимом, проверив, является ли элемент Hash и пустым ({}):
{}
p [{}, {}, :one, :two, [], [], '', nil].reject { |e| e == {} } # [:one, :two, [], [], "", nil]
Удалить пустые хэши:
ar = [{}, {}, :one, :two] ar.delete({}) p ar # => [:one, :two]
Попробуйте Массив # отклонить нежелательные элементы:
ary = [{}, {}, :one, :two] ary.reject! { |h| h.empty? } ary #=> [:one, :two]