Коли у мене є таке:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Чи є спосіб отримати доступ до цього Foo::CONSTANT_NAME
чи потрібно зробити метод класу для доступу до значення?
Коли у мене є таке:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Чи є спосіб отримати доступ до цього Foo::CONSTANT_NAME
чи потрібно зробити метод класу для доступу до значення?
Відповіді:
Те, що ви опублікували, має працювати ідеально:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
CONSTANT_NAME = ["a", "b", "c"].freeze
::
і .
;)
Якщо ви пишете додатковий код у своєму класі, який містить константу, ви можете ставитися до нього як до глобального.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Якщо ви отримуєте доступ до константи поза класом, приставте її до назви класу, а потім два двокрапки
Foo::MY_CONSTANT #=> hello
Чи є спосіб отримати доступ
Foo::CONSTANT_NAME
?
Так, є:
Foo::CONSTANT_NAME