Я запутался в том, как правильно устанавливать переменные в инициализаторе, я хочу, чтобы они были переменными уровня класса, а не экземпляром.
И я также хочу затем создать отдельный экземпляр другого объекта (это объект соединения, в который уже встроен пул соединений, поэтому мне просто нужна единственная ссылка на него).
Мой инициализатор /initializers/my_class.rb
yml = YAML.load_file("#{Rails.root}/config/my_class.yml")
MYMODULE::MyClass.init(yml)
А вот мой my_class.rb:
module MYMODULE
class MyClass
def self.init(yml)
@post_url = yml["defaults"]["post_url"]
end
def self.post_url
@post_url
end
# this should be a single instance
def connection_pool
# ???
end
end
end
- Эти переменные уровня класса, как я могу получить к ним доступ как из методов класса, так и из методов экземпляра?
У меня странное поведение, и я не понимаю, как ссылаться на post_url внутри методов класса или методов экземпляра.
Я видел следующие пути, не уверен, что это правильно:
self.class.post_url
MyClass.post_url
@post_url
post_url
self.post_url