Что in?
делает, чтобы проверить, присутствует ли получатель в массиве, переданном в качестве аргумента, что означает:
1.in?([1, 2]) # true
3.in?([1, 2]) # false
То есть, он проверяет «целый» объект, а не часть этого.
Если вы хотите отклонить элементы в вашем массиве, которые соответствуют VALID
и / или GOOD
, вы можете использовать =~
:
["SUPER", "SOME_VALID", "ROME_INVALID", "SUPER_GOOD"].reject { |word| word =~ /VALID|GOOD/ } # ["SUPER"]
Уведомление это также будет отвергать такие слова, как "VALIDITY", "GOODNESS" и др. c.