J'ai un modèle Book dans mon application Rails, avec diverses propriétés (alias colonnes dans la table book db). L'une de ces propriétés est "classement".À l'origine de "NoMethodError: méthode non définie` include? " pour nil: NilClass "
Récemment, peut app a commencé à jeter NoMethodError: undefined method 'include?' for nil:NilClass
pour le code suivant:
def some_method(book, another_arg)
return book.ranking unless book.ranking.blank?
...
end
Cependant, ce n'est pas cohérente. La grande majorité du temps, en accédant à book.ranking fonctionne - l'erreur est levée peut-être 2-4% du temps. Si je change le code à book[:ranking]
ou book['ranking']
au lieu de book.ranking
, cela fonctionne 100% du temps.
Des idées?
P.S. Ce problème a surgi par intermittence avec d'autres modèles et attributs ... pas seulement Book et l'attribut de classement.
Ce qui se passait pour moi parfois dans la console après recharger l'application. J'ai compris d'où cela venait une fois, mais j'ai oublié. Quelque part dans le code des rails. Je pense que c'est peut-être lié à l'interface mysql, utilisez-vous mysql? – mckeed
J'utilise PostgreSQL, et mon application fonctionne sur Heroku. Lorsque je me connecte à distance à la console de Heroku, cette erreur apparaît tout le temps (mais jamais sur ma console locale). – NudeCanalTroll
Je sais que c'est vraiment vieux maintenant, mais j'ai upvoted, car je vois la même erreur concernant une méthode qui vérifie '.nil?' Plutôt que '.blank?'.Cela ne se produit pas de manière cohérente et une seconde exécution du même code, ou une actualisation de page, semble toujours revenir au comportement attendu. Cela n'a commencé à se produire que lorsque j'ai changé l'environnement de développement de SQLite3 en MySQL afin d'imiter plus étroitement l'environnement de production, donc je suis enclin à être d'accord avec @mckeed. – Leo