필자의 레일 애플리케이션에서 여러 가지 속성 (일명 db 테이블의 열)을 가진 Book 모델이 있습니다. 이러한 속성 중 하나는 "순위 지정"입니다."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
그러나, 일관성이 아니다. 대부분의 시간 동안 book.ranking이 작동합니다 - 오류는 어쩌면 2-4 % 정도 발생합니다. book.ranking
대신 book[:ranking]
또는 book['ranking']
으로 코드를 변경하면 100 %의 시간 동안 작동합니다.
아이디어가 있으십니까?
P. 이 문제는 다른 모델 및 속성과 함께 간헐적으로 나타났습니다 ... 책 및 순위 속성뿐 아니라
앱을 다시로드하는 중입니다. 나는 그것이 어디에서 왔는지를 알았지 만, 나는 잊었다. 어딘가에 레일 코드 깊숙이. 아마도 mysql 인터페이스와 관련이 있다고 생각합니까? mysql을 사용하고 있습니까? – mckeed
PostgreSQL을 사용하고 있으며 내 앱이 Heroku에서 실행 중입니다. Heroku의 콘솔에 원격으로 로그인하면이 오류가 항상 나타납니다 (그러나 내 로컬 콘솔에는 나타나지 않습니다). – NudeCanalTroll
나는 이것이 정말로 오래되었다는 것을 알고있다. 그러나 나는'.nil?'보다는'.blank? '를 검사하는 방법과 관련된 동일한 오류를 보면서 upvoted했다.일관되게 발생하지 않으며 동일한 코드의 두 번째 실행 또는 페이지 새로 고침은 항상 예상 된 동작으로 되돌아가는 것처럼 보입니다. 이 작업은 프로덕션 환경을보다 자세히 모방하기 위해 SQLite3에서 MySQL로 dev 환경을 전환했을 때만 시작되었으므로 @mckeed에 동의 할 의향이 있습니다. – Leo