오류가 해결되지 않으면 원본을 끊는 아이디어
3179 단어 MySQLDBRailsPostgreSQL루비
프로그래밍을 하고 있으면 반드시 에러를 만나는 장면이 나옵니다.
간단하게 해결할 수 있는 에러도 있으면, 몇 시간, 잘못하면 며칠 걸려도 해결하지 않는 그런 동기조차 잃어버리는 에러도 존재합니다.
그런 동기를 잃을 때 도움이 되는 에러에 사용할 수 있을지도 모르는 테크닉을 하나 소개합니다.
덧붙여 이번은 Ruby on Rails에서 발생한 에러입니다만, 데이터베이스 관련의 에러라고 Rails 불문하고, 어느 프로그래밍 언어로의 개발 환경에 있어서도 효과적입니다.
이번은, 에러 발생으로부터 3일 걸려 해결했으므로, 짧고 알기 쉽게 정리해 보았습니다.
우선 결론
이 기사의 개요를 설명하면,
데이타베이스가 원래의 이상이라면, 데이타베이스를 재작성하는 것이 빠르다.
라는 이야기.
그럼, 3일간의 싸움을 부디!
첫날. Template::Error
undefined method `image_name' for nil:NilClass
위의 문장을 픽업하여 for nil : NilClass의 부분을 무시하고 생각했을 때
image_name이라는 메소드가 정의되지 않았다는 의미입니다.
1. 메서드 정의 잊어버리기
2. 간단하게 오자 탈자
이 근처를 의심하고 여러 가지 시도했지만,
방법의 정의 악이나 오자 탈자도 아니다 ...
구구라고 해도 정답에는 도착할 수 없다 ...
우선 첫날은 피곤해서 자고 말았습니다.
둘째 날. 데이터베이스 같은
오자 탈자가 없거나 재조사했지만 문제 없음.
여기서 너무 신경쓰지 않았다
for nil:NilClass
의 부분에 대해 구구해 보게 됩니다.
덧붙여서 Ruby를 사용한 적이없는 분은,
nil은 무엇입니까? 될 수 있지만,
nil은 null과 같은 의미입니다.
즉, "아무것도 없다"는 것입니다.
아무것도 없다는 내용으로 떠오르는 것은 하나 ...
데이터베이스와 관련이 있다는 것에
그리고 깨달으면 심야 1시, 또 완전히 날짜가 바뀌었습니다.
셋째 날.
Ruby on Rails 5 - undefined method `image_name' for nil:NilClass 에러가 있습니다.
위의 사이트에 도착했습니다.
여기에서 인용이 계속되지만,
이 교환이 전부입니다.
문자 많고 작고 읽고 싶지 않은 분을 향해 결론만 간단히 요약하면,
원인은 대략 잡았지만, 이미 데이터베이스를 바꾸는 것이 좋지요.
라는 이야기.
posts 테이블을 만들고 여러 데이터 입력
↓
nil 상태 (아무것도 없음)의 컬럼을 작성하지 말아야 할 규칙에 중간부터 프로그래밍
↓
새 열(user_id) 만들기
↓
지금까지의 user_id 열은 모두 nil 상태입니다.
↓
오류 발생
사이고에게
원인은 데이터베이스에 넣어서는 안되는 데이터가 포함되어 있습니다. 그렇다면 그 데이터를 삭제하면 된다.
혹은 개발 환경의 데이터베이스로 지워도 문제 없다면 이번과 같이 재작성하면 그것으로 복구할 수 있습니다.
만약 Ruby on Rails의 경우라면,
Rails$ rails db:drop # データベースを削除する
$ rails db:create # データベースを作成する
$ rails db:migrate # データベースにマイグレートする
이와 같이 개발 환경에 있던 소스 코드를 입력하면 좋은 번역이네요^^
추가
덧붙여서 db:drop → db:create → db:migrate를 정리해 실시할 수도 있습니다.
Rails$ rails db:reset
※이 커맨드로 정리해, db의 삭제로부터 마이그레이트까지를 할 수 있습니다.
Reference
이 문제에 관하여(오류가 해결되지 않으면 원본을 끊는 아이디어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TeppeiMimachi/items/755639c775c72cb73ad9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
undefined method `image_name' for nil:NilClass
for nil:NilClass
$ rails db:drop # データベースを削除する
$ rails db:create # データベースを作成する
$ rails db:migrate # データベースにマイグレートする
$ rails db:reset
Reference
이 문제에 관하여(오류가 해결되지 않으면 원본을 끊는 아이디어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TeppeiMimachi/items/755639c775c72cb73ad9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)