What's PrettyEnum?
A tiny gem that extends Rails enums to allow human-friendly labels.
If you’re wondering why not just use a string column for storing enumerated values—the answer is, you can. However, doing so can slow down database queries. The better approach is to store enums as integers for optimal performance while still displaying human-readable values effortlessly with PrettyEnum.
Getting Started
-
Install gem
gem 'pretty_enum' bundle install -
Add PrettyEnum to your class and define pretty_enum method
class Base < ActiveRecord::Base extend PrettyEnum enum :status, invitation_pending: 0, accepted: 1, deactivated: 2 pretty_enum :statuses end
-
It supported Hash and Array syntax
enum :status, invitation_pending: 0, accepted: 1, deactivated: 2 enum :status, [ :invitation_pending, :accepted, :deactivated ]
-
Use generated pretty_{enum_name} method
Base.pretty_statuses => { invitation_pending: 'Invitation Pending', accepted: 'Accepted', deactivated: 'Deactivated' }