Rails:在模型之间共享枚举声明值
Rails: Share enum declaration values between models
我正在对以下属性应用 enum:transparency
相同的属性(带有枚举)用于两个不同的模型:Category
和 Post
是否可以在模型之间共享枚举值,以避免代码重复:
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
我正在对以下属性应用 enum:transparency
相同的属性(带有枚举)用于两个不同的模型:Category
和 Post
是否可以在模型之间共享枚举值,以避免代码重复:
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