У меня есть модель книги в приложении Rails с различными свойствами (так называемые столбцы в таблице db книги). Одним из таких свойств является «ранжирование».Что вызывает «NoMethodError: undefined method» include? для nil: NilClass "
В последнее время, может приложение начал бросать NoMethodError: undefined method 'include?' for nil:NilClass
на следующий код:
def some_method(book, another_arg)
return book.ranking unless book.ranking.blank?
...
end
Однако это не соответствует. Подавляющее большинство времени, обращаясь к книжным работам - ошибка возникает, возможно, в 2-4% случаев. Если я изменю код на book[:ranking]
или book['ranking']
вместо book.ranking
, он работает в 100% случаев.
Любые идеи?
P.S. Эта проблема периодически возникала с другими моделями и атрибутами ... а не только с атрибутом Book и Rank.
Это случалось со мной иногда в консоли после перезагрузка приложения. Я понял, откуда это происходит, но я забыл. Где-то глубоко в коде rails. Я думаю, возможно, это связано с интерфейсом mysql, вы используете mysql? – mckeed
Я использую PostgreSQL, и мое приложение работает на Heroku. Когда я вхожу в консоль Heroku удаленно, эта ошибка появляется все время (но никогда не на моей локальной консоли). – NudeCanalTroll
Я знаю, что сейчас это действительно старо, но я получил поддержку, поскольку я вижу ту же ошибку, связанную с методом, который проверяет «.nil?», А не «.blank?».Это не происходит последовательно, и второй запуск того же кода или обновления страницы всегда, кажется, возвращается к ожидаемому поведению. Это только началось, когда я переключил среду dev с SQLite3 на MySQL, чтобы более точно имитировать производственную среду, поэтому я склонен согласиться с @mckeed. – Leo