проверить массив монгоид и рубин на рельсах - PullRequest
4 голосов
/ 02 марта 2012

У меня в модели Приглашение поле и атрибут вроде:

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?

1 Ответ

6 голосов
/ 02 марта 2012

Как насчет:

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
...