我有一个嵌套表单,用于在注册中创建成员
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
答案 0 :(得分:0)
对我而言,这似乎是预期的行为。 reject_if应该“默默地”忽略任何不符合条件的字段。如果删除了reject_if子句,则应对成员实例进行通常的模型验证。
如果没有,那么您可以在注册模型中使用validates_associated
validates_associated :atendees