Dans la vue Rails, il y avait une scène où j'ai écrit un processus comme "afficher s'il y a une image". Il existe plusieurs méthodes pour vérifier l'existence, y compris celles pour Ruby et celles pour Rails. Après quelques recherches, j'ai choisi la méthode "OK, allons-y!" Et je l'ai mise en revue, mais elle a été complètement écrasée, donc je la garderai comme mémorandum afin de ne pas faire d'erreur à l'avenir.
macOS Catalina Version 10.15.5 Ruby: 2.6.5 Ruby on Rails: 6.0.3
Il y a eu des articles similaires dans le passé, et la plupart d'entre eux sont en fait "la méthode de jugement d'authenticité de ruby (nil? / Vide? / Blank? / Present?) S'est avérée intéressante //qiita.com/go_d_eye_0505/items/541110cb9821734b0623) ». En plus de cela, les raisons de publier cette fois sont les suivantes.
De plus, vide? Est exclu (parce que la définition de présent? Est-ce! Vide?).
Utilisez la console des rails.
test =XXX ← Remplacez différemment ici
test.any?
!test.empty?
test.present?
!test.nil?
any? | !empty? (empty?Déni de) |
present? (!blank?) |
!nil? (nil?Déni de) |
|
---|---|---|---|---|
Ruby/Rails | Ruby | Ruby | Rails | Ruby |
1 Nombres |
NoMethodError | NoMethodError | true | true |
"foo" Chaîne |
NoMethodError | true | true | true |
{key: value} hacher |
true | true | true | true |
["foo"] Tableau |
true | true | true | true |
true | NoMethodError | NoMethodError | true | true |
false | NoMethodError | NoMethodError | false | true |
nil | NoMethodError | NoMethodError | false | false |
"" Ciel |
NoMethodError | false | false | true |
" " Espace demi-largeur |
NoMethodError | TRUE | FALSE | true |
{} Hachage vide |
false | false | false | true |
[] Tableau vide |
false | false | false | true |
[nil] Tableau(L'élément est nul) |
FALSE | TRUE | TRUE | TRUE |
À partir de ce résultat, j'ai souligné les points auxquels je devrais faire attention à l'avenir en majuscules dans le tableau, mais je les décrirai à nouveau ci-dessous.
! Empty?
Et renvoie true, et dans present?
Il est considéré comme vide et renvoie false nil
à! Nil?
, Il retourne faux, mais si vous demandez au tableau composé de[nil]
, il retourne vrai.Dans Rails, il existe également une méthode appelée ʻexists? . Cela semble être utilisé pour vérifier si les données d'une condition spécifique existent dans la base de données, et c'était une méthode définie par ʻActiveRecord :: Base
. Je ne le savais pas et je l'ai initialement inclus dans l'enquête, mais tous ont renvoyé NoMethodError
.
Ceci est le premier message de Qiita. Je pense que c'est simple et assez naturel, mais c'était une bonne occasion d'approfondir ma compréhension à travers le processus d'examen et d'organisation pour la sortie. Je souhaite publier régulièrement des articles qui me seront utiles (≒ autres) à l'avenir.