Rails Association验证:字段,还是_id字段?

时间:2012-04-23 04:58:36

标签: ruby-on-rails activemodel

我在Rails开发中遇到的一个更麻烦的做法是在验证实际对象(例如:validates_presence_of:related_object)和验证该关联的id列之间(例如:validates_presence_of:related_object_id)验证相关字段的验证。

我认为我应该开始与此更加一致,在我做任何事情之前,我想知道这两种方法之间是否有任何优势?我什么都想不到,但后来我才知道忽略了什么。那么,它有什么不同吗?是否有一个惯例:大多数开发人员应该遵守的是什么?

任何建议表示赞赏。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

这个问题经常出现。

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

验证association_id还会阻止您使用新的关联记录创建对象并将它们保存在一起。