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.