EnumI18n
⚠️ DEPRECATED: This gem is deprecated and will be archived soon. ⚠️
Why Deprecated?
This gem was created to provide I18n support for ActiveRecord enums, but Rails now has better built-in alternatives:
-
Rails 7.1+: Use
human_attribute_name
with enum values -
Alternative gems: Consider using
enum_help
orenumerize
which are more actively maintained
Migration Guide
Before (with enum-i18n):
class User < ApplicationRecord
include EnumI18n
enum :status, [:active, :inactive]
end
# Usage
@user.status_text # => "Active"
After (Rails 7.1+):
class User < ApplicationRecord
enum :status, [:active, :inactive]
end
# Usage
User.human_attribute_name("status.#{@user.status}") # => "Active"
Alternative gems:
-
enum_help:
gem 'enum_help'
- More actively maintained -
enumerize:
gem 'enumerize'
- Feature-rich enum management
Archive Date
This gem will be archived on or after August 31, 2025.
Enum attributes with I18n and ActiveRecord support
Installation
Add this line to your application's Gemfile:
gem 'enum-i18n'
And then execute:
$ bundle
Or install it yourself as:
$ gem install enum-i18n
Usage
ActiveRecord:
class ApplicationRecord < ActiveRecord::Base
include EnumI18n
end
Or:
class User < ApplicationRecord
include EnumI18n
end
I18n:
---
en:
activerecord:
enum:
user:
sex:
male: "Male"
female: "Female"
get attribute value:
@user.sex_text
or can appoint i18n scope
@user.sex_text('user.sex')
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/amyroi/enum-i18n. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
For bug reports and issues, please use our GitHub Issues page.