Handling Enum Constraints with Custom Scopes
If strict validation is required, define custom scopes to filter out invalid values.
class User < ApplicationRecord
enum :status, { active: 0, inactive: 1, suspended: 2 }
scope :valid_statuses, -> { where(status: statuses.values) }
end
Now, calling User.valid_statuses
ensures no invalid statuses are retrieved.