次のものがある場合:
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"]
クラス内に定数を含む追加のコードを記述している場合、それをグローバルのように扱うことができます。
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
クラス外の定数にアクセスしている場合は、クラス名を接頭辞に付け、その後に2つのコロンを付けます
Foo::MY_CONSTANT #=> hello
いくつかの選択肢:
class Foo
MY_CONSTANT = "hello"
end
Foo::MY_CONSTANT
# => "hello"
Foo.const_get :MY_CONSTANT
# => "hello"
x = Foo.new
x.class::MY_CONSTANT
# => "hello"
x.class.const_defined? :MY_CONSTANT
# => true
x.class.const_get :MY_CONSTANT
# => "hello"
Foo::CONSTANT_NAME
にアクセスする方法はありますか?
はいあります:
Foo::CONSTANT_NAME