2012-06-06 1 views
0

에서 모듈을 액세스 : 무엇 제공이 어느 곳을 찾을 수가 없습니다 루비 반복자

Module::ModelClassOne.all.each do 
    Module::ModelClassTwo.all.each do 
    # get an error of undefined constant ModelClassTwo 
    end 
end 

를? 나는 몇 가지 대안을 시도했다 :

Module::ModelClassOne.all.each do 
    ::Module::ModelClassTwo.all.each do 
    # get an error of undefined constant ModelClassTwo 
    end 
end 

Module::ModelClassOne.all.each do 
    ModelClassTwo.all.each do 
    # get an error of undefined constant ModelClassTwo 
    end 
end 

Module::ModelClassOne.each do 
    ::ModelClassTwo.each do 
    # get an error of undefined constant ModelClassTwo 
    end 
end 

아무것도 작동하고 그것은 나를 crrrrrrazzzzzy 만들고있다.

+1

코드 어딘가에 오타가 있어야합니다. 클래스 식별자에 액세스하는 것은 반복 루프의 깊이와 아무 관련이 없습니다. 'ModelClassTwo'는 루프 깊이에 상관없이 모든 곳에서 사용할 수 있어야합니다. – Casper

답변

2

each 메서드는 실행 컨텍스트를 다시 정의하지 않으므로가 예상대로 정의되지 않은 것일 수 있습니다.

실제로 ModelClassTwo이로드되었는지 확인하십시오. 해당 파일을 require (으)로 잊어 버렸을 수 있습니다.

0

와우, 매우 당혹 스럽네요. 그것은 오타 였고 레이크 작업이 오류를내는 방법과 관련이있었습니다. model.attributes = {option : option.id} 대신 model.attributes = {option_id : option.id}를 할당하려고했는데 특성 해시에서 오는 "unitialized constant Option"오류가 발생했습니다. 너무 오랫동안 일 해왔다. 여기서 두려운 두 번째 질문입니다. 미안 한 놈들과 친구들!

관련 문제