Module: ActiveRecord::RealEnums::Models::Postgresql::ClassMethods

Defined in:
lib/activerecord/real_enums/models/postgresql.rb

Instance Method Summary collapse

Instance Method Details

#real_enum(name, options) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# 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