根据rails指南,我对validates_associated的理解是,它应该确保相关记录在保存之前是有效的。例如:
class ForumPost < AR:Base
has_many :replies
end
class ForumPostReply < AR:Base
validates_length_of :content, :minimum => 20
end
单元测试:
forum_post = Factory.create(:forum_post)
forum_post.replies.build(:content => 'some content') #content too short, not valid
forum_post.save
forum_post.errors.should be_empty #empty because reply was not expected to be validated
鉴于我没有指定validates_associated,我是否应该期望此保存失败:在我的ForumPost模型中回复?它似乎保存得很好,这不是我所期望的,因为我没有指定相关的验证。
因此,如果模型的行为方式没有指定validates_associated,那么validates_associated会做什么?
答案 0 :(得分:2)
想想我会把它转到答案。你说,
“鉴于我没有在ForumPost模型中指定validates_associated :replies
,我是否应该期望此保存失败?”
不,你应该期望它保存,因为你不指定validates_associated :replies
“似乎保存得很好,这不是我预期的,因为我没有指定相关的验证。”
似乎保存得很好,因为不验证关联,因为你没有指定它。