Подтвердить что ты не робот

Как проверить, существует ли переменная со значением без "undefined локальной переменной или метода"?

Это общий шаблон: если переменная не существует, я получаю ошибку undefined local variable or method.

Существующий код имеет if variable_name.present?, но это не учитывает переменную, которая не существует.

Как я могу проверить значение переменной, а также учетную запись, для которой она вообще не существует?

Я пробовал:

if (defined? mmm) then
  if mmm.present? then
    puts "true"
  end
end

но Ruby все еще проверяет внутренний mmm.present? и бросает "нет такой переменной", когда он не существует.

Я уверен, что есть общий шаблон/решение.

4b9b3361

Ответ 1

Измените present? на != '':

if defined?(mmm) && (mmm != '') then puts "yes" end

Ответ 2

попробуйте:

if defined?(mm) && !mm.blank?
  puts "acceptable variable"
end

Он может убедиться, что вы не получите переменную undefined или значение nil или empty.

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

if defined?(session[:user]['name'])
  puts "active session"
else
  puts "expired session"
end