同じモジュールを含むいくつかのクラスを取得しました。コード内の 1 か所でモジュールのメソッドの 1 つをオーバーライドしたいと考えています。これを行う方法?
私は試した
module [Module_name]
def [method_to_override]
それをレールの自動ロードパスに追加しますが、成功しません
同じモジュールを含むいくつかのクラスを取得しました。コード内の 1 か所でモジュールのメソッドの 1 つをオーバーライドしたいと考えています。これを行う方法?
私は試した
module [Module_name]
def [method_to_override]
それをレールの自動ロードパスに追加しますが、成功しません
モジュールを mixin として使用している場合は、クラスでメソッドを再定義できます。クラス レベルで定義されたメソッドは、呼び出されたときに優先されます。この場合、ミックスインとしてのモジュールは単にスーパークラスとして動作します。
モジュールを名前空間として使用している場合、コードを動的に再定義する方法があるかどうかはわかりません。おそらく、名前空間付きのモジュールをその場で開いて、メソッドの新しいコードを含めるとうまくいくでしょう。私は前にこれを試したことがない。
いくつかの参考資料