使って以下のようなコードを書きました。endendこのクラスは以下のようにして利用します。例外が発生してしまいます。返すようにしてもやはり例外が発生してしまいます。返るので、それをそのまま返して欲しいのにそうならないのは何故か?OpenStructのインスタンスは、知らないメソッドを呼ばれるとnilを返しますが、respond_to?にはfalseを返します。Delegatorは委譲先のメソッドを呼び出す前にまずrespond_to?を呼び、それがtrueであることを確認してからメソッドを呼ぶようになっています。falseの場合はsuperするので、BasicObjectにないメソッドの場合はそこでNoMethodError例外となる、というわけです。OpenStructのnilをそのまま返してほしいのであれば、OpenStructのrespond_to?をオーバーライドする必要があります。それでは「小文字がないとき大文字」の処理ができなくなるので、method_missingをオーバーライドするという方針でいいと思います。形とするとbeginからrescueの間の例外しか捕捉されないので、このようにrescue節内でふたたびrescueしてやればいいです。(1)ありがとうございます。思いつきもしませんでした。ようにしてやりたいことはできてしまったのですが、とても勉強になりました。21:19ウォッチこの質問への回答やコメントをメールでお知らせします。