2011-12-09 2 views
0

현재 디렉토리가 $ LOAD_PATH에 포함되어 있지 않은 이유는 무엇입니까? 이상하게 보입니다. 계속 추가하고 있지만, 자동으로 포함되지 않는다고 생각하는 이유가 무엇입니까?

답변

5

$LOAD_PATH에는 Ruby 1.8.7의 현재 디렉토리가 포함되어 있지만이 동작은 1.9.2에서 변경되었습니다. this question에 대한 대답 중에서이 결정의 이유에 대한 가능한 설명을 찾을 수 있지만 기본적인 생각은 코드가 실행되는 디렉터리가 1.8.7에있는 .은 해당 디렉터리가 아니라 실행되는 디렉터리를 의미한다는 것입니다. 그리고 대부분의 경우에 당신은 그것을 원치 않으며 $LOAD_PATH.은 신뢰할 만합니다.

1.9.2에서 require_relative을 사용하면 어디서나 $LOAD_PATH.을 수동으로 추가하고 싶지 않은 경우 좋은 해결책이 될 수 있습니다. here은 상대 경로를 명시 적으로 확장 한 것입니다. 한 가지주의해야 할 점은 1.9.2 이전 버전에서는 사용할 수 없으므로 코드가 오래된 루비와 호환되지 않게됩니다.

관련 문제