如何让所有表包含Rails 4中的某些列?

时间:2015-05-06 20:21:14

标签: ruby-on-rails rails-migrations

让我们假设我要创建10个表,它们共有4列。是否有一种简单的方法来生成迁移,而无需在10个表的每个迁移文件中指定所有4列?

1 个答案:

答案 0 :(得分:3)

创建自己的迁移助手非常容易。我将创建一个简单的列,其中添加了created_byupdated_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