Ruby использует две разные «корзины» для данных: переменные и константы. В исходном коде вы можете идентифицировать их по первой букве: у констант всегда есть заглавная буква в начале их имени, а у переменных строчная буква.
В вашем случае, таким образом, у вас есть константа с именем W_mum
. Теперь, когда вы сначала устанавливаете значение в константу, а затем позже задаете другое значение, Ruby будет отображать предупреждение (как таковое: вы можете устанавливать новые значения для констант, но вы не должны ).
Теперь, почему Ruby предупреждает здесь: в вашем elsif
вы фактически присваиваете константу значение 1
. Это может быть ошибкой, хотя. Вместо присваивания с =
вы, вероятно, намеревались использовать сравнение здесь, используя оператор ==
.