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.