验证 Rails 模型/表中的存在与 null false

2023-11-23

我在玩 Rails admin 时发现了一些东西。

模型中定义如下的属性,在 Rails 管理中计为“必需”

 validates :user, presence: true

但是,如下表(架构/迁移)中定义的属性仍算作“可选”

t.datetime "created_at",:null => false

我本以为这两者是相同的,除了弹出验证错误的级别之外。是我错了还是这是 Rails 管理错误?这两者都确保成功的现场保存需要该字段还是有区别?


添加一个:null => false意味着这是数据库限制,即在任何情况下数据库都不允许空值。

添加一个presence: true是模型级验证,因此将在将对象插入数据库之前进行。在某些情况下,您可能想要破坏这些验证(例如边缘情况或在您的规范中),然后您可以使用跳过验证:validates => false并且该对象仍然会进入数据库,如果数据库为空,则不会发生这种情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证 Rails 模型/表中的存在与 null false 的相关文章

随机推荐