Как правильно проверить, находится ли переменная в массиве в ruby ​​и ruby ​​на рельсах - PullRequest
0 голосов
/ 17 апреля 2019

Пытаюсь проверить, есть ли переменная в массиве, поэтому я использую решение, найденное здесь ссылка

приведенный ниже код работает нормально, если я передам значение чайного слова напрямую в функции включения, как показано ниже.

mycheck= ['Soap', 'Tea', 'Sugar'].include? 'Tea'
      if mycheck == true
        print("yes present")
      else
        print("not present")
      end

Мои проблемы: Моя проблема, если я устанавливаю значение tea для переменной согласно приведенному ниже коду, возвращается false

var_tea = 'Tea'
mycheck= ['Soap', 'Tea', 'Sugar'].include? var_tea
      if mycheck == true
        print("yes present")
      else
        print("not present")
      end

      Can someone help me resolve this issue. is there any other alternative way like using **is_array()** etc.

Ответы [ 2 ]

2 голосов
/ 17 апреля 2019

Я пробовал эти две строки

var_tea = 'Tea'
mycheck = ['Soap', 'Tea', 'Sugar'].include? var_tea

и mycheck - это true

Я предполагаю, что у вас, очевидно, нет этой переменной в строке выше, она, вероятно, исходит из запроса, и это не совсем Tea, возможно tea. Попробуйте напечатать var_tea до этой проверки.

puts var_tea.inspect
0 голосов
/ 17 апреля 2019

Ваш код кажется правильным, но вы могли бы сделать его лучше.

Прежде всего, вы проверяете, является ли переменная истинной. Лучший способ сделать это в ruby:

if mycheck
  print("yes present")
else
  print("not present")
end

Вы также можете попробовать:

my_check = var_tea.in? ['Soap', 'Tea', 'Sugar']

Если у вас возникла та же проблема, убедитесь, что вы дважды проверили свой код и у вас нет метода my_check= или чего-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...