【发布时间】:2014-12-07 14:58:54
【问题描述】:
我一直在玩多表继承和数据库约束。我知道 Rails 的哲学是处理代码中的约束而不是数据库中的约束,但我想两者都做。我也知道多态关联,但它们不允许您强制执行约束。
所以这是我的方案,而不是像 guides 中的 imageable_type 和 imageable_id,我想要 employee_id 和 product_id(在我的情况下,我将只有两个外键)。这让我可以创建一个类似于 here 解释的约束。
但是现在,我有一个问题,我需要创建一个条件关系,而 rails 似乎没有为此提供任何东西。我需要一个imageable 关系,它可以链接到产品或员工,具体取决于填写的字段。
任何建议如何在 Rails 中做到这一点?我知道如何在 SQL 中进行约束,我的问题是如何在 Rails 中实现这种多态关系。
再一次,我知道如何在没有数据库约束的情况下做到这一点,但数据库约束是我的问题的重点:)
【问题讨论】:
-
您希望每张图片都准确链接到 1 个员工或产品(异或)?再也没有了?至少需要两者之一?从不两者兼而有之?
标签: ruby-on-rails postgresql ruby-on-rails-4 polymorphic-associations multi-table-inheritance