可以直接在关联上使用validate
说明符(请参阅此Rails Guide的4.1.2.12以及validates_associated
(请参阅Rails Guide处的3.2) )。
两者有何不同?
答案 0 :(得分:2)
他们都验证了相关的模型。
区别在于第一个是关联上的选项(例如belongs_to
,has_many
等)。例如。您可以在关联中定义“验证行为”。
在经典的“作者有很多书籍”示例中,假设您在Book模型上启用belongs_to :author, :validate => true
。每次验证Book模型时,关联的Author也必须有效。
另一个是单独的验证规则,您可以将其添加到其他验证中。因此,在这种情况下,您可以启用关联对象的验证以及其他验证规则。
这可以相反。在作者:has_many :books ; validates_associated :books
。验证Author对象时,也会验证所有书籍。