私のモデルにいくつかの機能を追加するために、デコレータ クラスを使用しています。この情報を使用して一部の値を処理したいだけで、データベースに何も保存したくありません。
次のようなデコレータクラスがあります。
class Deco
def initialize o
@target = o
end
def method_missing method, *args, &block
@target.send(method, *args, &block)
end
#my extra methods
end
そして、私はそれを次のように使用します:
deco_model = Deco.new(model)
ここで問題があるのは、これdeco_mode
を別のものに関連付けたいときに、型の不一致エラーが発生することです。これは理にかなっていますが、デコレータ クラスに次のメソッドを追加すると、次のようになります。
def class
@target.class
end
それでも同じエラーが発生しますが、次のように表示されます: Model(#aaaaaa) expected, got Model(#aaaaaa) はい、「モデル」はモデルのクラスであり、オブジェクト ID はどちらの場合も同じです.. . オブジェクト ID が同じであるのに、なぜまだ例外が発生するのでしょうか?
ありがとう