Создание собственного валидатора с регулярным выражением .. пока не запускается - PullRequest
0 голосов
/ 20 июля 2010

Эй, ребята, я подумал, что это будет довольно просто, но это не так .. может, я просто неправильно пишу синтаксис ..

В моей модели я проверяю определенные ключевые слова

before_validation :deal_validation

def deal_validation
  if self.description.match /(exp\s|expire|ex\s|print|mention|\/)/ 
    errors.add(:description, "Now just a second! You can't use those words!")
  end    
end

Но, похоже, это не останавливает сохранение модели.

Я что-то упустил?

Ответы [ 2 ]

1 голос
/ 20 июля 2010

Изменено на

validate: deal_validation

Works!

0 голосов
/ 20 июля 2010

Я действительно не знаю ruby, но использовал rubular для тестирования, и кажется, что вы хотите:

(\bexpire\b|\bexp?\b|\bprint\b|\bmention\b|\b\/\b)

символы \ b соответствуют границам слова. как написано, ваше регулярное выражение будет соответствовать чему-либо с "/", а также строкам типа "регулярное выражение". это действительно то, что вы хотите?

отредактировано, чтобы немного улучшить его, используя "?" квантификатор, который соответствует как "exp", так и "ex"

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