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