Enum Internationalization in Rails 8
Rails 8 improves I18n integration for enums, allowing direct mapping inside enums using store_attribute
.
New I18n-Aware Enum Definition in Rails 8
class User < ApplicationRecord
enum :status, { active: "active", inactive: "inactive", banned: "banned" }, store_attribute: :preferences
end
Now, enums are stored inside a JSON column and can be automatically translated using I18n.
Enhanced Localization with ActiveRecord Queries
User.where("preferences->>'status' = ?", I18n.t("activerecord.attributes.user.statuses.active"))
This makes querying and translating enums in Rails 8 more efficient.