Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。RailsのActiveRecord::Migrationクラスを継承したクラスではcreate_tableメソッドを呼ぶことができます。このcreate_tableメソッドの本体はActiveRecord::ConnectionAdapters::SchemaStatementsにあるcreate_tableメソッドのようだ、ということはソースを読んで予想できました。MigrationクラスでSchemaStatementsモジュールをincludeしているようでもないのに、なぜcreate_tableメソッドが呼べるのか、という仕組みがわかりません。呼べるのか教えてください。票1簡単に答えが見つかるかと思いましたが、意外と難しいですね。調べてみたところ、こちらのブログにほぼ答えが載っていました。処理を委譲しているからcreate_tableが呼べる、ということになります。4.2.0のコードで確認してみました。method_missingが処理を委譲しているコードはこちらになります。includeしているようです。個の銅バッジcreate_tableメソッドが呼ばれるまでの経路が理解出来、スッキリしました。ありがとうございます。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。