Каким образом, если у меня есть класс, как:Почему я получаю неопределенную локальную переменную или ошибку метода при использовании константы, но не при использовании метода?
class Thing
def number
10
end
end
И я наследовать от него, как это:
class OtherThing < Thing
CONSTANT = number/2
end
Я получаю undefined local variable or method 'number'
, когда я пытаюсь создать экземпляр класса, но если я делаю это:
class OtherThing < Thing
def method_instead_of_constant
number/2
end
end
Это работает?
EDIT
Я не обязательно ищу хак, чтобы сделать эту работу, но понимание того, почему он не делает. Ответ mudasobwa
помог больше всего; константы назначаются на уровне класса, а не на экземплярах.
Читайте о 'self' в Ruby ... это вам очень поможет. –