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.