关于Rails的问题validates_associated

时间:2014-06-18 20:46:09

标签: ruby-on-rails validation associations

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

1 个答案:

答案 0 :(得分:2)

第一个问题:不,它无法确保。为了确保您至少有一本书:

validates :books, presence: true

第二个问题:是的,这是正确的。图书馆将尝试验证其第一本书,该书将尝试验证其图书馆,而图书馆将依次尝试验证相同的第一本图书......依此类推。

有关验证的更多信息,请查看Validations Rails Guide