簡體   English   中英

在初始化類class_eval中擴展枚舉

[英]extending enum in initializer class_eval

我在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選項?

我建議創建一個繼承“組織”類的新模型。 在新模型中,您可以重新定義枚舉。 例如:

class NewOrganisation < Organisation

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

end

現在,您可以訪問Organization的所有方法和重新定義的枚舉'organisation_type'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM