ruby-on-rails - 如何让所有表都包含 Rails 4 中的某些列?

标签 ruby-on-rails rails-migrations

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

最佳答案

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

关于ruby-on-rails - 如何让所有表都包含 Rails 4 中的某些列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086770/

相关文章:

ruby-on-rails - Rails - 动态构建深度嵌套对象(Cocoon/nested_form)

ruby-on-rails - 处理完请求后杀死 puma 线程

mysql - Rails 3.2.6 和通过迁移创建数据库 View

mysql - 通过 ruby​​ Rails 迁移添加 MySQL 枚举列时出现问题

ruby-on-rails - Rails 3 在迁移问题中添加外键

ruby-on-rails - Rails 中的 Postgres 查询 : where not

ruby-on-rails - Rails 4.2 语法错误,意外 ':',期待 =>

ruby-on-rails - 在 Rails3 中将 Formtastic 用于 habtm 关联的复选框

mysql - 如何在 Ruby on Rails 4 中创建比其父级具有更多属性的继承模型?

ruby-on-rails - 推送到 Heroku 时带有 Postgres 的 Rails 迁移错误