无法验证空的嵌套字段

时间:2016-05-09 10:39:11

标签: ruby-on-rails ruby-on-rails-4

我有一个嵌套表单,用于在注册中创建成员

class Enrollment < ActiveRecord::Base
  has_many :atendees, dependent: :destroy
  accepts_nested_attributes_for :atendees, reject_if: :all_blank, allow_destroy: true
end

以及会员模型的验证。

如果我提交包含所有空白成员字段的注册表单,则注册成功保存为空成员数组。

如果我输入任何成员字段并提交,成员模型验证将采取行动。

为什么会发生这种情况?

我也试过只检查一列:

  accepts_nested_attributes_for :atendees, , reject_if: proc { |attributes| attributes['first_name'].blank? }, allow_destroy: true

1 个答案:

答案 0 :(得分:0)

对我而言,这似乎是预期的行为。 reject_if应该“默默地”忽略任何不符合条件的字段。如果删除了reject_if子句,则应对成员实例进行通常的模型验证。

如果没有,那么您可以在注册模型中使用validates_associated

validates_associated :atendees