Rails在保存之前验证孩子

Ped*_*des 6 ruby-on-rails nested-forms ruby-on-rails-4

我有一个通常的嵌套模型

class Parent
  has_one :child
  accepts_nested_attributes_for :child
end

class Child
  belongs_to :parent

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

如果我试图保存一个没有名字的孩子,那么它是禁止的,但如果我保存了嵌套孩子的父母,如果忽略了验证.

我不想重复我的孩子验证:reject_if.

我如何验证孩子,并且只有在孩子有效的情况下,将父母与孩子一起保存?

Mar*_*pka 12

你应该使用validates_associated:

class Parent
  has_one :child
  accepts_nested_attributes_for :child
  validates_associated :child
end
Run Code Online (Sandbox Code Playgroud)