如何使所有表都包含 Rails 4 中的某些列?
How can I make all tables contain certain columns in Rails 4?
假设我要创建 10 个 table,它们有 4 个共同的列。有没有一种简单的方法可以在不指定 10 table 的迁移文件中的每一个的所有 4 列的情况下生成迁移?
创建您自己的迁移助手非常容易。我将创建一个简单的添加 created_by
和 updated_by
列的迁移助手,名为 userstamps
。
创建一个新的初始化文件config/initializers/userstamps.rb
:
module UserstampMigrationHelper
def userstamps
column :created_by, :integer
column :updated_by, :integer
end
end
ActiveRecord::ConnectionAdapters::TableDefinition.include(UserstampMigrationHelper)
现在您可以在迁移中使用它了:
class WidgetsMigration < ActiveRecord::Migration
def change
create_table :widgets do |t|
t.string :name
t.userstamps
end
end
end
假设我要创建 10 个 table,它们有 4 个共同的列。有没有一种简单的方法可以在不指定 10 table 的迁移文件中的每一个的所有 4 列的情况下生成迁移?
创建您自己的迁移助手非常容易。我将创建一个简单的添加 created_by
和 updated_by
列的迁移助手,名为 userstamps
。
创建一个新的初始化文件config/initializers/userstamps.rb
:
module UserstampMigrationHelper
def userstamps
column :created_by, :integer
column :updated_by, :integer
end
end
ActiveRecord::ConnectionAdapters::TableDefinition.include(UserstampMigrationHelper)
现在您可以在迁移中使用它了:
class WidgetsMigration < ActiveRecord::Migration
def change
create_table :widgets do |t|
t.string :name
t.userstamps
end
end
end