Comment vérifier si une variable existe avec une valeur sans "variable locale non définie ou méthode"?

C'est un modèle courant: Si une variable n'existe pas, je reçois un undefined local variable or method erreur.

Le code existant a if variable_name.present? mais ce n'était pas la raison pour la variable n'existe pas.

Comment puis-je vérifier la valeur de la variable et aussi de rendre compte de la non-existence?

J'ai essayé:

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

mais Ruby vérifie quand même que l'intérieur mmm.present? et jette "pas variable" lorsqu'il n'existe pas.

Je suis sûr qu'il y a un modèle commun/solution à cette question.

source d'informationauteur Michael Durrant