Ruby on rails 在rails上验证阵列mongoid和ruby

Ruby on rails 在rails上验证阵列mongoid和ruby,ruby-on-rails,ruby,arrays,mongoid,Ruby On Rails,Ruby,Arrays,Mongoid,我在模型邀请中有一个字段和属性,如: field :recipients, :type => Array 我的控制器中有一个包含4封电子邮件的阵列,如: @invitation.recipients = ['', '', '', ''] 我希望在我的模型中验证每个数组的值是否与电子邮件正则表达式匹配,例如: validates_format_of :recipients, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/u,

我在模型邀请中有一个字段和属性,如:

field :recipients, :type => Array
我的控制器中有一个包含4封电子邮件的阵列,如:

@invitation.recipients = ['', '', '', '']
我希望在我的模型中验证每个数组的值是否与电子邮件正则表达式匹配,例如:

validates_format_of :recipients, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/u, :message => "is not a valid email address"
如何在mongoid中验证数组的正则表达式?

如何:

RE = /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/u
validate :recipients_format
def recipients_format
  unless recipients.all? { |r| r =~ RE }
    errors[:recipients] = "are not all valid email addresses"
  end
end

谢谢@clyfe,这段代码是在控制器中还是在模型中?是否可以在保存回调之前使用此代码添加方法?谢谢,这是模型。不知道你在第二个短语上的意思。