이것은 간단한 것입니다. 다음 예에서 상수가 이미 정의되어 있는지 어떻게 확인합니까?
#this works
var = var||1
puts var
var = var||2
puts var
#this doesn't
CONST = CONST||1
puts CONST
CONST = CONST||2
puts CONST
=> 1
1
uninitialized constant CONST (NameError)
답변:
pry> User.const_defined?("PER_PAGE")
=> true
pry> User.const_defined?("PER_PAGE123")
=> false
CONST ||= :default_value
위의 내용은 루비 1.9.3에서는 작동하지만 1.8에서는 실패합니다. 이제 1.8은 오래되었습니다.
const_defined?
있지만 그것은 나를 위해 작동하지 않습니다. 이유를 모르겠습니다.