Ответ 1
CONST = 2 unless defined? CONST
Смотрите здесь для получения дополнительной информации об удивительном операторе defined?
.
P.S. И в будущем, я думаю, вы захотите var ||= 1
вместо var = var||1
.
Надеюсь, это просто. Как проверить в следующем примере, если константа уже определена?
#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)
CONST = 2 unless defined? CONST
Смотрите здесь для получения дополнительной информации об удивительном операторе defined?
.
P.S. И в будущем, я думаю, вы захотите var ||= 1
вместо var = var||1
.
pry> User.const_defined?("PER_PAGE")
=> true
pry> User.const_defined?("PER_PAGE123")
=> false
CONST ||= :default_value
выше работает для меня на рубине 1.9.3, но терпит неудачу на 1.8... хорошо 1.8 теперь древнее.