class Library < ActiveRecord::Base
has_many :books
validates_associated :books
end
据我了解,这可确保与books
相关联的Library
是有效的图书。 IE浏览器。这不允许将无效的图书与Library
相关联。
问题:
1)validates_associated :books
是否也确保Library
至少有一本书?如果没有,你是怎么做到的?所有验证器似乎都适用于模型的字段,但Library
模型的任何字段都没有引用books
。
2)This validation must not be used on both ends of an association. Doing so will lead to a circular dependency and cause infinite recursion.
是什么意思?这是否意味着您不应该在validates_associated :library
模型中拥有Book
?
答案 0 :(得分:2)
第一个问题:不,它无法确保。为了确保您至少有一本书:
validates :books, presence: true
第二个问题:是的,这是正确的。图书馆将尝试验证其第一本书,该书将尝试验证其图书馆,而图书馆将依次尝试验证相同的第一本图书......依此类推。
有关验证的更多信息,请查看Validations Rails Guide。