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. 我用谷歌在 中找到它ActiveRecord::ConnectionAdapters::SchemaStatements,但甚至查看了这两个文件的源代码:

git 中的迁移
create_table in git

我看不到如何create_tableMigration.

4

1 回答 1

1

这些方法是在此类中动态创建的:https ://github.com/rails/rails/blob/d68e299167c8da07dc63a55197313b5c3396c3a4/activerecord/lib/active_record/migration/command_recorder.rb

他们在CommandRecorder类中动态添加这些,然后是以下行:

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

使其可用于迁移类。

于 2013-03-20T22:17:55.533 回答