Пользовательская проверка в модели - PullRequest
0 голосов
/ 23 апреля 2011

Мне нужно сделать проверку для модели User с помощью shortcut_url, чтобы соответствовать регулярному выражению.

user.shortcut_url[/^[a-z]|[A-Z]*/]

Я хочу, чтобы он выдавал ошибку и добавлял в сообщения пользователя. Я получил это без предварительного исследования и придумал

def validate_shortcut_url
 if self.shortcut_url
  if self.shortcut_url[/^[a-z]|[A-Z]*/] != ""
    return true
  else
    self.errors.full_messages << "Shortcut URL must begin with a letter"
    return false
  end
 end
end

Затем положите

validate :validate_shortcut_url

вверху моей модели. Сейчас. Как правильно это сделать?

Ответы [ 2 ]

1 голос
/ 22 сентября 2012

кажется, что делать это далеко, почему бы вам просто не сделать

validates_format_of :validate_shortcut_url, :with => /^[a-z]|[A-Z]*/, :message => "Shortcut URL must begin with a letter"
1 голос
/ 23 апреля 2011

Чтобы запустить пользовательскую проверку, просто наберите:

validate :validate_shortcut_url

в модели.Кроме того, поскольку вы находитесь в пользовательской модели, вам не нужно передавать пользователя - вы можете просто использовать self как в self.shortcut_url

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...