Если ваши переменные имеют тот тип значений, который, я думаю, они имеют, это потому, что include
не является правильным методом для использования здесь.
Если @word_bank
и @rand_ary
являются массивами, include
проверит, равен ли какой-либо отдельный элемент @special_chars
. Если @special_chars
сам является массивом, то он вернет true, только если один из элементов в @word_bank
/ @rand_ary
является массивом.
['a', 'b', 'c', '!'].include?('!') # => true
['a', 'b', 'c', '!'].include?(['!']) # => false
['a', 'b', 'c', ['!']].include?(['!']) # => true
Я думаю, что вы на самом деле заинтересованы в том, есть ли совпадение между ними. В этом случае вы можете использовать оператор пересечения (&
) и проверить, является ли он пустым.
['a', 'b', 'c', '!'] & ['!'] # => ['!']
['a', 'b', 'c'] & ['!'] # => []