Pourquoi la seconde instruction if échoue-t-elle dans le bloc de code suivant? La sortie de la console indique que le paramètre private est 0, donc il devrait passer? Le paramètre private provient d'une case à cocher dans le nouveau formulaire que j'utilise pour définir un champ booléen dans le modèle.RoR: Pourquoi cette instruction if échoue-t-elle?
if (((params[:note])[:text]) != "")
logger.debug("passed first test")
logger.debug(((params[:note])[:private]))
if (((params[:note])[:private]) == 0)
logger.debug("passed second test")
end
end
sortie de la console
passed first test
0
Completed in 61ms (DB: 1) | 302 Found [http://localhost/notes]
Merci pour la lecture.
Merci pour votre réponse. Merci aussi pour votre note de côté, je suis assez nouveau pour RoR, mon code est beaucoup plus joli maintenant! – ben
Je ne voudrais pas simplement lancer un 'params [: note] [: private] .to_i == 0'. Essayez 'nil.to_i' ou' "Pas un nombre" .to_i', cela peut causer des maux de tête dans le futur – Chubas
@Chubas Oui, tout ce qui n'est pas analysable comme un entier donnera '0' comme résultat. Cela vaut la peine d'être noté. Généralement pour les paramètres numériques, on s'intéresse à si quelque chose est différent de zéro ou non. –