我有很多表使用相同的列名。我想将它们拆分为部分,这样我每次重新创建数据库时都可以编辑部分以更改列。
我试过了:
class CreateFruit < ActiveRecord::Migration[5.0]
def change
create_table :fruits do |t|
partial
end
end
class CreatePet < ActiveRecord::Migration[5.0]
def change
create_table :pets do |t|
partial
t.string :personality
end
end
def partial
t.string :name
t.string :size
end
但是,我在运行迁移时总是遇到语法错误
答案 0 :(得分:2)
创建名为db/migrate/_partial_migration.rb
的文件:
class PartialMigration
class << self
def call(t)
t.string :name
t.string :size
end
end
end
在您的迁移中db/migrate/20180209112447_create_pet.rb
:
require_relative "./_partial_migration.rb"
class CreatePet < ActiveRecord::Migration[5.0]
def change
create_table :bar do |t|
PartialMigration.call(t)
t.string :personality
end
end
end