2

我在 Rails 开发中遇到的一个比较混乱的做法是在验证实际对象(例如:validates_presence_of :related_object)和验证该关联的 id 列(例如:validates_presence_of :related_object_id)之间处理关联字段的验证。

我想我可能应该开始对此更加一致,在我承诺任何事情之前,我想知道这两种方法是否有任何优势?我什么都想不出来,但是我以前就知道我会忽略一些东西。那么,这有什么不同吗?是否有一个约定:大多数开发人员应该遵守什么?

任何建议表示赞赏。

4

2 回答 2

1

当然,您必须检查:object_id. 如果您检查是否存在,:object则将从您的数据库中获取该对象,然后通过 simple 进行检查blank?。我猜你不会对额外的数据库命中感到满意。

于 2012-04-23T05:23:13.727 回答
1

这个问题经常出现。

在大多数情况下,您需要验证实际关联对象的存在,而不仅仅是验证是否设置了 id(很可能是无效的)。

验证association_id还将阻止您创建具有新关联记录的对象并将两者保存在一起。

于 2012-10-23T09:58:10.563 回答