Quando eu tenho o seguinte:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Existe uma maneira de acessar Foo::CONSTANT_NAME
ou preciso criar um método de classe para acessar o valor?
Quando eu tenho o seguinte:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Existe uma maneira de acessar Foo::CONSTANT_NAME
ou preciso criar um método de classe para acessar o valor?
Respostas:
O que você postou deve funcionar perfeitamente:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
CONSTANT_NAME = ["a", "b", "c"].freeze
::
e .
;)
Se você estiver escrevendo um código adicional em sua classe que contenha a constante, poderá tratá-lo como um global.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Se você estiver acessando a constante fora da classe, prefixe-a com o nome da classe, seguido por dois pontos
Foo::MY_CONSTANT #=> hello
Existe uma maneira de acessar
Foo::CONSTANT_NAME
?
Sim existe:
Foo::CONSTANT_NAME