203 votes

Comment tester si les paramètres existent dans les rails

J’utilise une instruction IF avec Ruby on Rails pour tenter de vérifier si les paramètres de requête sont définis. Indépendamment de si oui ou non les deux paramètres sont définies, la première partie de ce qui suit si le bloc se déclenche. Comment puis-je faire cette partie seulement se déclenche si les deux params [ : un] et params [ : deux] a la valeur ?

390voto

mu is too short Points 205090

Vous souhaitez has_key?:

if(params.has_key?(:one) && params.has_key?(:two))

Vérifier simplement en if(params[:one]) va se laisser berner par un "mais " néant" et "mais faux" de la valeur et que vous vous dites à propos de l'existence. Vous pourriez avoir besoin de différencier:

  • Pas là du tout.
  • Mais il y nil.
  • Mais il y false.
  • Il y a, mais une chaîne vide.

ainsi. Difficile à dire sans plus de détails de votre situation précise.

100voto

netricate Points 397

Je suis un fan de

``

juste parce qu’il garde les params [sym] forme donc c’est plus facile à lire.

24voto

Orlando Points 3184

utiliser le vide ? http://API.RubyOnRails.org/classes/Object.html#Method-i-Blank-3F

renvoie la valeur true si son vide ou nulle

aussi... cela ne fonctionnera pas si vous testez valeurs booléennes... depuis

dans ce cas, vous pourriez utiliser

10voto

Jacob Relkin Points 90729

Simple comme Bonjour :

5voto

fl00r Points 41855
if params[:one] && params[:two]
 ... do something ...
elsif params[:one]
 ... do something ...
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X