在初始化程序class_eval中扩展枚举

时间:2015-05-27 02:21:24

标签: ruby-on-rails enums

我在gem中有一个模型,我在config / initializers中重新打开。 我想在重新打开课程时扩展某个字段的枚举。 它就像这样

=========我的宝石==========

class organisation < ActiveRecord::Base

  enum organisation_type:{
    'a' => 1,
    'b' => 2,
  }

end

=======我的初始化者==========

organisation.class_eval do

  enum organisation_type:{
    'c' => 3
  }

end

但它表示我不能覆盖枚举,因为它已经是最终方法或某种类型。任何人都可以给我一个扩展枚举的方法,以便我可以有a,b和c选项吗?

1 个答案:

答案 0 :(得分:1)

我建议创建一个继承班级&#39;组织的新模型。在新模型中,您可以重新定义枚举。例如:

class NewOrganisation < Organisation

  enum organisation_type:{
   'a' => 1,
   'b' => 2,
   'c' => 3
  }

end

现在,您可以访问组织的所有方法并重新定义枚举&#39; organisation_type&#39;。