是否可以从活动记录父级的错误中访问子对象?

bia*_*idp 5 ruby activerecord ruby-on-rails

鉴于以下表达的关系:

class Parent < ActiveRecord::Base
  has_many :children, :dependent => :destroy

  accepts_nested_attributes_for :child
end

class Child < ActiveRecord::Base
  belongs_to :parent

  validates :name, :presence => true
end
Run Code Online (Sandbox Code Playgroud)

假设我们有一个包含多个子节点的父对象,其中一个或多个具有导致parent.valid的错误?返回false.

parent = Parent.new
parent.build_child(:name => "steve")
parent.build_child()
parent.valid?
Run Code Online (Sandbox Code Playgroud)

有没有办法在查看parent.errors对象时访问导致错误的子元素?

bia*_*idp 0

正如约翰在评论中建议的那样,我最终忽略了为子级添加到父级的错误,并遍历子级并手动添加它们的错误。由于有一对 has_many :through 关系,问题变得复杂,但约翰的建议是我最终使用的本质。