Две модели, одна STI и валидация
Допустим, у меня есть две таблицы - Продукты и Заказы. Для простоты предположим, что за один раз можно купить только один продукт, поэтому нет таблицы объединения, такой как order_items. Таким образом, связь заключается в том, что у продукта много заказов, а заказ принадлежит продукту. Следовательно, product_id - это fk в таблице Order.
Таблица продуктов - STI - с подклассами A, B, C.
Когда пользователь заказывает подкласс Product C, необходимо проверить две специальные проверки в полях модели Order order_details и order_status. Эти два поля могут быть нулевыми для всех других подклассов Продукта (т. Е. A и B). Другими словами, проверка этих двух полей не требуется, когда пользователь покупает А и В.
Мой вопрос:
Как записать проверки (возможно, настраиваемые?) В модель Order, чтобы модель Order знала, что нужно выполнять проверки только для двух полей ITS - order_details и order_status - когда подкласс fk_id для Product C сохраняется в таблице заказов ?