module ActiveRecord::RealEnums::Models::Postgresql::ClassMethods

Public Instance Methods

real_enum(name, options) click to toggle source
# File lib/activerecord/real_enums/models/postgresql.rb, line 12
def real_enum(name, options)
  sql = "SELECT unnest(enum_range(NULL::#{options.fetch(:type)}))"

  values = ::ActiveRecord::Base.
    connection.
    execute(sql).
    map { |e| e["unnest"] }

  validates_inclusion_of(name, in: values)
end