2

Rubyでメソッドやクラスがどのように定義されているか、APIドキュメントの読み方についての質問です。要するに、create_tableメソッドはどのように定義/インポート/継承されているので、ActiveRecord::Migration次のようなコードで使用できます:

class CreateProducts < ActiveRecord::Migration
  def up
    create_table :products do |t|
      t.string :name
      ...

Java の世界から来た私は、API ドキュメントが、すべてが定義されている基本クラスまたは mixin へのリンクを提供することを期待していました。しかし、 のページを見るとMigration、役立つ手書きのドキュメントがいくつかありますが、 の最も詳細で信頼できる定義へのリンクはありませんcreate_table。Google を使用して で見つけましたActiveRecord::ConnectionAdapters::SchemaStatementsが、2 つのファイルのソース コードを見ても、

git での移行 git での
create_table

create_tableで がどのようにスコープに取り込まれるのかわかりませんMigration

4

1 に答える 1

1

これらのメソッドは、このクラスで動的に作成されます

それらはCommandRecorderクラスに動的に追加され、次に次の行が追加されます。

class Migration
    autoload :CommandRecorder, 'active_record/migration/command_recorder'

移行クラスで使用できるようにします。

于 2013-03-20T22:17:55.533 に答える