Restricting Values with Inclusion Validation
Rails enums do not automatically restrict values to predefined options. A user could still be assigned an invalid integer unless validation is enforced.
class User < ApplicationRecord
enum :status, { active: 0, inactive: 1, suspended: 2 }
validates :status, inclusion: { in: statuses.keys }
end
Now, attempting to assign an invalid status will trigger a validation error.
user = User.new(status: :deleted) # Raises ActiveRecord::RecordInvali