我有一个用户和一个文档模型;一个用户有许多文档,一个文档属于一个用户。您可以将其概括为只有父模型和子模型。
现在我正在为子模型编写单元测试,我想知道是否也必须验证parent_id字段(例如只是整数,大于零,该id存在于父表中等等)-或者Rails自动为我执行这些操作,因为这些是固有的外键属性?
我有一个用户和一个文档模型;一个用户有许多文档,一个文档属于一个用户。您可以将其概括为只有父模型和子模型。
现在我正在为子模型编写单元测试,我想知道是否也必须验证parent_id字段(例如只是整数,大于零,该id存在于父表中等等)-或者Rails自动为我执行这些操作,因为这些是固有的外键属性?
关于Rails 3的方式
# child.rb
validates :parent, presence: true
你可以添加外键约束,甚至通过Rails实现(不必手动连接到数据库并执行原始SQL),但也可以在模型本身上执行:
# child.rb
validates_presence_of :parent
这将确保它具有parent_id并且该ID在Parent表中找到。
否则,Rails不会自动为您检查约束条件。