Méfiez-vous des autres réponses présentées present?comme une réponse à votre question.
present?est l'opposé de blank?in rails.
present?vérifie s'il existe une valeur significative. Ces choses peuvent échouer à un present?contrôle:
"".present? # false
"    ".present? # false
[].present? # false
false.present? # false
YourActiveRecordModel.where("false = true").present? # false
Alors qu'un !nil?chèque donne:
!"".nil? # true
!"    ".nil? # true
![].nil? # true
!false.nil? # true
!YourActiveRecordModel.where("false = true").nil? # true
nil?vérifie si un objet est réellement nil. Rien d' autre: une chaîne vide, 0, false, peu importe, n'est pas nil.
present?est très utile, mais certainement pas le contraire de nil?. La confusion des deux peut conduire à des erreurs inattendues.
Pour votre cas d'utilisation present?fonctionnera, mais il est toujours sage d'être conscient de la différence.
     
              
present?nécessite une chaîne non vide.! "".nil?renvoie vrai, mais"".present?renvoie faux.