关注的Rails 4状态枚举 - 仅包括模型中的子集

时间:2015-06-02 18:28:26

标签: ruby-on-rails ruby ruby-on-rails-4 enums

我有一个关注的状态选项,我有很多模型包含这个问题,但有些模型应限于所有可用状态的子集。

有没有办法将我列入关注状态的“白名单”或“黑名单”?

我想保持所有模型中每个状态的实际整数一致,以防我们将“状态”从枚举切换到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

0 个答案:

没有答案