Enum Validations in Rails 8

Although enums limit values, Rails does not automatically validate them. To ensure only valid enum values are assigned, add:

class User < ApplicationRecord
  enum :status, { active: 0, inactive: 1, banned: 2 }
  validates :status, inclusion: { in: statuses.keys }
end

Handling Invalid Enum Assignments

If an invalid enum value is assigned, it raises an error:

user.status = :unknown  # Raises ArgumentError

By using validations, you prevent invalid assignments, maintaining data integrity.