Module: ActiveRecord::PGEnum::Helper::ClassMethods
- Defined in:
- lib/active_record/pg_enum/helper.rb
Instance Method Summary collapse
-
#pg_enum(definitions) ⇒ Object
Declare an enum attribute where the values map to strings enforced by PostgreSQL’s enumerated types.
Instance Method Details
#pg_enum(definitions) ⇒ Object
Declare an enum attribute where the values map to strings enforced by PostgreSQL’s enumerated types.
class Conversation < ActiveRecord::Base
include ActiveRecord::PGEnum::Helper
pg_enum status: %i[active archived]
end
This is merely a wrapper over traditional enum syntax so that you can define string-based enums with an array of values.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/active_record/pg_enum/helper.rb', line 20 def pg_enum(definitions) values = definitions.values.map do |value| if value.is_a? Array keys = value.map(&:to_sym) values = value.map(&:to_s) Hash[keys.zip(values)] else value end end enum Hash[definitions.keys.zip(values)] end |