그런 이름의 변수/상수가 존재하지 않을 때 이 오류를 내보냅니다.
에러 메시지의 해석
이미지를 보시면 가장 위의 줄에 Home#index라고 쓰여있는 것을 알 수 있습니다. 이것은 NameError가 발생한 Controller와 그 액션을 의미합니다.
그 밑에 줄에는 혹시 당신이 의도했던 이름이 post나 @post는 아니었냐고 반문하는 문장이 있습니다. 이것은 이런 이름의 변수/상수명은 있지만 당신이 쓴 이름의 변수/상수는 없다는 의미입니다.
그리고 그 밑은 틀린 파일과 그 줄을 보여줍니다.
의심해볼 수 있는 상황
변수/상수명을 오타를 낸 경우
믿기 힘드시겠지만 당신은 분명 오타를 냈기 때문에 이런 에러가 발생하는 것입니다. 컴퓨터는 저런 이름의 변수/상수를 찾을 수 없으니, 이런 에러를 내보내는 것이죠.
Controller를 살펴보면서 내가 혹시 정의하지 않은 변수/상수를 사용했는지 의심해보세요
클래스명을 오타낸 경우
uninitalized constant라는 에러 메시지가 2번째 줄에 찍힌다면 이 경우를 의심해볼 수 있습니다. 모델 클래스명을 잘못썼거나, 자신이 정의한 클래스명을 잘못 썼을때 발생합니다.