たとえば、ProductsとOrdersの2つのテーブルがあるとします。簡単にするために、一度に購入できる製品は1つだけであるため、order_itemsのような結合テーブルはないと仮定します。つまり、Productには多くの注文があり、Orderは製品に属しているという関係です。したがって、product_idはOrderテーブルのfkです。
製品テーブルはSTIで、サブクラスはA、B、Cです。
ユーザーがサブクラスProductCを注文する場合、Orderモデルフィールドorder_detailsとorder_statusで2つの特別な検証をチェックする必要があります。これらの2つのフィールドは、他のすべてのProductサブクラス(つまり、AとB)ではnilにすることができます。つまり、ユーザーがAとBを購入するときに、これら2つのフィールドに対して検証を実行する必要はありません。
私の質問は:
Orderモデルに検証(おそらくカスタム)を記述して、ProductサブクラスCへのfk_idがordersテーブルに保存されているときに、OrderモデルがITSの2つのフィールド(order_detailsとorder_status)の検証のみを実行することを認識できるようにするにはどうすればよいですか? ?