イニシャライザで変数を正しく設定する方法が混乱しています。これらをインスタンスではなくクラスレベルの変数にします。config(yaml)でクラスを初期化し、1つのインスタンスにする変数を設定する
また、別のオブジェクトのインスタンスを1つ作成する必要があります(接続オブジェクトが既に作成されています。そのため、接続プールが組み込まれているため、1つの参照が必要です)。
yml = YAML.load_file("#{Rails.root}/config/my_class.yml")
MYMODULE::MyClass.init(yml)
そして、ここでは私のmy_class.rbある/initializers/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
いくつかのコードスニペットで説明できますが、ごめんなさい。 – Blankman