我有一个关注的状态选项,我有很多模型包含这个问题,但有些模型应限于所有可用状态的子集。
有没有办法将我列入关注状态的“白名单”或“黑名单”?
我想保持所有模型中每个状态的实际整数一致,以防我们将“状态”从枚举切换到ActiveModel - 它将使转换变得非常容易。
应用/模型/关切/ status_enum_concern.rb
module StatusEnumsConcern
extend ActiveSupport::Concern
included do
enum status: [:active, :inactive, :sample, :staging, :sold_out, :expired, :wait_list]
validates :status, presence:true
def status_enum
enum_array = []
self.class.statuses.each { |v| enum_array << [v.first.titleize, v.second] }
enum_array
end
end
end
应用/模型/ package.rb
class Package < ActiveRecord::Base
...
include StatusEnumsConcern
# Any options here?
...
end