多くのクラスメソッドを含むJourneyというクラスがあります。テーブル「journeys」ができたので、対応するJourneyActiveRecordクラスも必要です。明らかに、クラスに「<ActiveRecord :: Base」を追加するだけですが、RailsコンソールでJourneyクラスを変更して、ソースコードに触れることなくActiveRecordクラスになることができるかどうか疑問に思っています。
クラスの親クラスを動的に変更する方法をググったのですが、それは不可能のようです?..他に方法はありますか?同様に、古いJourneyのすべてを含み、ActiveRecord :: Baseも継承する、同じ名前の新しいクラスを作成しますか?それとも、クラスをActiveRecordクラスに変換する他の方法がありますか?
これは私が本当に必要としているものではありませんが(実際にプロジェクトのソースコードを変更できるので)、Rubyで理論的に実行できるかどうか本当に興味があります-RubyのほとんどすべてがRubyのほとんどすべてであるという事実に慣れていますその場で行うことができます、これも実行可能かどうか疑問に思いますか?..
class Journey
def self.find_for(vehicle, start_date, end_date)
# ...
end
# ... lots of other class methods
end
クラスのスーパークラスを変更することはできません。(技術的にModule#include
はModule#append_features
、を呼び出します。これは、ほとんどの実装でincludeクラスを作成し、そのクラスをinclude
呼び出されるクラスのスーパークラスにしますが、ユーザーコードではそれを行うことはできません。)
元のクラス定義を変更するか、新しいクラスを作成する必要があります。それを回避する方法はありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加