Rails等同于django模型mixin以保持DRY

时间:2015-09-06 18:07:30

标签: ruby-on-rails ruby

在Django中是否有相当于ModelMixin的导轨?我希望我的所有模型默认都有一个uuid字段。我是否需要在每个迁移文件中添加它?

一旦我在表中有了字段,获得uuid字段的最佳方法是什么?现在我正在使用一个问题,但我想知道扩展ActiveRecord::Base是否更好并且拥有所有模型而不是在每个模型中声明include Uuid

module Uuid
  extend ActiveSupport::Concern

  included do 
    before_validation :add_uuid, on: :create
  end

  protected

  def add_uuid
    self.uuid = SecureRandom.uuid
  end

end

1 个答案:

答案 0 :(得分:0)

是的,如果要在每个模型中包含该字段,除非您要构建自定义迁移生成器,否则必须将其添加到每个迁移中。至于扩展ActiveRecord :: Base,我会做什么,因为它会出现在每个模型中。你见过这个吗? http://blog.arkency.com/2014/10/how-to-start-using-uuid-in-activerecord-with-postgresql/