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_namewith enum values - Alternative gems: Consider using
enum_helporenumerizewhich are more actively maintained
class User < ApplicationRecord
include EnumI18n
enum :status, [:active, :inactive]
end
# Usage
@user.status_text # => "Active"class User < ApplicationRecord
enum :status, [:active, :inactive]
end
# Usage
User.human_attribute_name("status.#{@user.status}") # => "Active"- enum_help:
gem 'enum_help'- More actively maintained - enumerize:
gem 'enumerize'- Feature-rich enum management
This gem will be archived on or after August 31, 2025.
Enum attributes with I18n and ActiveRecord support
Add this line to your application's Gemfile:
gem 'enum-i18n'And then execute:
$ bundle
Or install it yourself as:
$ gem install enum-i18n
ActiveRecord:
class ApplicationRecord < ActiveRecord::Base
include EnumI18n
endOr:
class User < ApplicationRecord
include EnumI18n
endI18n:
---
en:
activerecord:
enum:
user:
sex:
male: "Male"
female: "Female"get attribute value:
@user.sex_textor can appoint i18n scope
@user.sex_text('user.sex')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.