マルチテーブルの継承とデータベースの制約で遊んでいます。Railsの哲学は、データベースではなくコードで制約を処理することであることは知っていますが、両方を行いたいと思っています。ポリモーフィックな関連付けについても知っていますが、制約を強制することはできません。
したがって、これが私のシナリオです。ガイドのようにimageable_type
andを使用する代わりに、 and を使用したいと思います(私の場合、外部キーは2つしかありません)。これにより、ここで説明したような制約を作成できます。imageable_id
employee_id
product_id
しかし、今、問題があります。条件付きの関係を作成する必要がありますが、Rails はそのためのものを提供していないようです。imageable
どのフィールドが入力されているかに応じて、製品または従業員にリンクされている関係が必要です。
Railsでそれを行う方法について何か提案はありますか? 私は SQL で制約を行う方法を知っています。私の質問は、このポリモーフィックな関係を Rails でどのように実装できるかです。
繰り返しますが、データベースの制約なしでそれを行う方法は知っていますが、データベースの制約はまさに私の質問のポイントです:)