如何验证父对象是否具有有效的子对象(Rails)

时间:2011-02-12 02:32:01

标签: ruby-on-rails unit-testing associations

假设我有一个名为 Book 的ActiveRecord模型,该模型与模型页面具有has_many关联。

class Book < ActiveRecord::Base
  has_many :pages
end

我想知道是否存在已建立的方法,以确保在没有至少一个与之关联的有效Page对象的情况下无法将Book对象保存到数据库。我的目标不是测试关联的存在,而是验证父对象确实具有有效的子对象。这有意义吗?这实际上是测试关联的情况吗?我熟悉“validates_associated”方法,但如果尚未分配关联,则此验证不会失败,但如何确保关联另一侧有有效对象?

1 个答案:

答案 0 :(得分:2)

来自validates_associated的Rails 2.3.2文档:

  

注意:如果,此验证不会失败   该协会尚未分配。   如果你想确保   协会既存在又存在   保证有效,你也需要   使用validates_presence_of