Как упоминал Брайан Кэмпбелл, вы можете использовать плагин validation_class_methods
. Это не рекомендуется, но поддерживается. Плагин validation_helpers
предоставляет вам аналогичных помощников, которые дает плагин validation_class_methods
, для использования в качестве методов экземпляра внутри метода validate
.
Написание проверок как методов экземпляров - лучший подход, IMO, поэтому Sequel поощряет его. Валидации по своей сути являются действиями уровня экземпляра, а не действиями класса. При валидации на уровне класса обработка таких вещей, как условная валидация, должна иметь специальный синтаксис (например, :if=>proc{}
), где вы можете просто использовать обычные условные операторы ruby в методе экземпляра (например, if
, else
, case
и т. д.).
Очевидно, что если вы пришли из ActiveRecord, это другой подход. Сиквел не пытается клонировать поведение ActiveRecord, хотя в некоторых отношениях две библиотеки работают одинаково.