Rails:在模型之间共享枚举声明值

Rails: Share enum declaration values between models

我正在对以下属性应用 enumtransparency

相同的属性(带有枚举)用于两个不同的模型:CategoryPost

是否可以在模型之间共享枚举值,以避免代码重复:

enum transparency: %w(anonymous private public)

您可以使用 concern.

module HasTransparency
  extend ActiveSupport::Concern
  included do
    enum transparency: %w(anonymous private public)
  end
end

然后将其包含在您的模型中:

class Category < ActiveRecord::Base
  include HasTransparency

  ....
end

使用关注点或模块 "the right way" 的替代方法,您可以只引用另一个 class 枚举。它非常适合我:

enum same_values_than_other: SomeOtherClass.my_awesome_enum