2

运行时:

 rails generate migration <someaction> field:type

我可以看到它正在执行两个操作:

  1. 调用调用 active_record
  2. 创建迁移文件。

我完全理解它为什么会生成迁移文件,但为什么会调用 ActiveRecord?这让我很困扰,因为如果我想手动创建迁移文件怎么办?我将如何模仿这种调用(如果有必要的话..)?

4

2 回答 2

3

生成器MigrationGenerator

1) 加载您的 ORM(在 Rails 中默认为 Active Record),使其扩展正确的 'ORM'::Migration 类(同样默认为 ActiveRecord::Migration)

2) 它本身是NamedBase生成器的扩展,它查看您是否正在运行 Active Record 来决定是否应该将表名复数。如果你跑就是这样

rails generate migration AddPartNumberToProducts part_number:string

或者

rails generate migration AddPartNumberToProduct part_number:string

您在文件中得到相同的结果。

所以简短的回答是,您不需要调用 active_record 来手动创建迁移,但如果您这样做并且您正在使用 Active Record,请确保您的表名在迁移文件中是复数形式的。

于 2013-01-09T00:40:23.287 回答
0

调用activerecord gem来生成迁移文件。

如果仔细观察,迁移文件的超类是ActiveRecord::Migration类。

于 2013-01-09T00:34:47.127 回答