『メタプログラミングRuby』の第7章まで読み終えました。
第7章の最後に掲載されているrails/modules.rbは,現在のActiveRecord 3.0.5では動作しませんでした。以下のように変更すると動作するようになります。訳者の角征典さんに教えていただきました。ありがとうございます。
本に掲載されている通りに入力して実行すると,以下のように,deprecated_callback_methodが定義されていないと出力されています。本来なら,このメッセージをみて,「あっ,deprecated_callback_methodを定義しないと」と気づかないといけませんね。まだまだ力が足りません。
validations.rb:57:in `valid?': undefined method `deprecated_callback_method' for #<MyClass:0x00000100d12710> (NoMethodError) from modules.rb:18:in `<main>'
疑問点
2行目のActiveRecord::Baseをコメントアウトしても動作しますが,何のために書いてるんでしょう?