Rails 外键验证

3

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

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


让你的数据库执行外键约束。 - user507577
1
@Rejesh 绝不是 Rails 应用程序中的争议。 - user229044
2个回答

5

关于Rails 3的方式

# child.rb
validates :parent, presence: true

如果父级是管理员,则应为“validates:admin_id,presence:true” - Promise Preston

3

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

# child.rb
validates_presence_of :parent

这将确保它具有parent_id并且该ID在Parent表中找到。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接