Railsプロジェクトでは、グローバル設定を文字列インデックス付きハッシュに格納します。各クラス(モデル)には、独自の設定用の「名前空間」があります。たとえば、ニュースモデルの設定は「news.stories_per_page」または「news.show_date」である可能性があります。
どこでも名前を変更する必要をなくすために、これらの設定にアクセスするための一般的なクラスメソッドを提供するミックスインがあります。このミックスインを使用すると、次のようなコードで「news.show_date」にアクセスできます。
News.setting :show_date
=> true
さて、ここに問題があります。文字列'news.show_date'を生成するには、モジュールを混在させるモデルのクラス名を知る必要があります。ただし、クラスメソッド内では、
self.class
=> Class
これは私にはあまり役に立ちません。私のナイーブな実装では、これによりすべてのモデルが「クラス」の下に設定を保存していました。名前空間。これは受け入れられません。
問題をより明確に述べることができなかったことをお詫び申し上げます。私はRubyに少し慣れておらず、そのオブジェクトモデルを完全には理解していません。この問題は、Rubyでクラスメソッドに混在させるために必要と思われるクラッジに関係している可能性があります。