Comment vérifier si params [: some] [: field] est nul?
J'ai essayé le code, que plused un grand nombre de personnes - Comment faire pour tester si les paramètres existent dans les railsmais il ne fonctionne pas():
if ( params.has_key?([:start_date]) && params.has_key?([:end_date]) )
Je pense que c'est à cause de la complexité des params et si j'écris ceci:
if ( params.has_key?([:report][:start_date]) && params.has_key?([:report][:end_date]) )
me donne l'erreur
can't convert Symbol into Integer
cela ne fonctionne pas trop:
if ( params[:report][:start_date] && params[:report][:end_date] )
me donne l'erreur:
undefined method `[]' for nil:NilClass
Il toujours aller dans d'autre déclaration.
Voici mes params:
report:
start_date: 01/08/2012
end_date: 10/08/2012
Quelqu'un peut m'aider ?
source d'informationauteur skrypalyk
Vous devez vous connecter pour publier un commentaire.
Cross-poster réponse de ici:
Ruby 2.3.0 très facile à faire avec #creuser.
Il semblerait vous avez besoin de
ou
ou
en fonction de ce que vous essayez de vérifier pour
J'ai été à la recherche d'une meilleure solution. J'ai trouvé celui-ci:
Est-il un moyen propre pour éviter l'appel d'une méthode sur le nil dans une étude params de hachage?
Vous obtenez la valeur ou
nil
si elle n'existe pas.Alors j'ai pensé que nous allons utiliser
try
une manière différente:Il n'est pas mauvais. Vous obtenez
nil
vsfalse
si elle n'est pas définie. Vous bénéficiez également detrue
si le paramètre est réglé surnil
.Cela fonctionne:
Et peut-être ajouter cette sorte également de vérifier si elle n'est pas vide: