Rails 7.1 で enum validation が入った。

With the changes in Rails 7.1, you can validate the enum values without raising any errors.

Rails 7.1 adds validation to enums | Shakacode

Rails enum validataion

下記のように使える。

class Conversation < ActiveRecord::Base
  enum :status, [ :active, :archived ], validate: true
end

conversation = Conversation.new

conversation.status = :unknown
conversation.valid? # => false

conversation.status = nil
conversation.valid? # => false

conversation.status = :active
conversation.valid? # => true

ref. ActiveRecord::Enum | RailsDoc(β)