特定のモジュールを含むすべてのクラスを教えてくれるメソッドを書こうとしています。このように見えます-
def Rating.rateable_objects
rateable_objects = []
ObjectSpace.each_object(Class) do |c|
next unless c.include? Rateable
rateable_objects << c
end
rateable_objects
end
ここで、「Rateable」は、いくつかのモデルに含まれている私のモジュールです。
私が見つけたのは、Railsコンソールを起動した後、またはサーバーを実行した直後にこのメソッドを呼び出すと、このメソッドが[]を返すことです。しかし、消費モデルの1つのインスタンスを最初にインスタンス化すると、そのモデルが結果に返されます。
では、モジュールはいつ含まれるのでしょうか?彼のアプリが起動したときよりも、プロセスの後半で推測しています。プロセスの早い段階でこの方法でこの情報を取得できない場合、これを達成する方法はありますか?