3

我有一个用户和一个文档模型;一个用户有很多文档,一个文档属于一个用户。您可以将其概括为仅具有父模型和子模型。

现在我正在为子模型编写单元测试,我想知道是否也必须验证 parent_id 字段(例如 only_integer,大于零,id 存在于父表中等) - 还是 Rails 自动为我这样做,因为这些是固有的外键属性?

4

2 回答 2

5

Rails 3方式将是

# child.rb
validates :parent, presence: true
于 2012-12-07T20:42:58.523 回答
3

您可以添加外键约束,甚至通过 Rails(即不必手动连接到您的数据库并执行原始 SQL),但您也可以在模型本身上执行此操作:

# child.rb
validates_presence_of :parent

这将确保它有一个 parent_id 并且该 ID 可以在 Parent 表中找到。

否则,不,Rails 不会自动为您检查约束。

于 2012-12-07T20:25:03.937 回答