Я строю каркас, который будет проверять формы как на стороне клиента (javascript), так и на стороне сервера на основе спецификации требований формы, написанной на json.
Цель состоит в том, чтобы избавиться от логически эквивалентного кода на сервере и клиенте, чтобы сделать код более понятным, быстрее писать и меньше глючить.
Формат спецификации может выглядеть примерно так:
{ '<field_name>' : ['<validation_function>', 'req', ['<requirement>', <param>], ...], ... }
(список требований упорядочен так, чтобы пользователь мог сначала получить большинство основных сообщений об ошибках, требование 'req' должно стоять первым, если оно существует и означает, что поле обязательно)
например.)
{
'name' : ['string', 'req', ['min',6], ['max',150], ['match', /^[\sa-z0-9ÅÄÖåäö&]$/i], ['not_match', /^tmp_/]],
'email' : ['email', 'req'],
'email_confirm' : ['same_as', 'email'],
'password' : ['string', 'req', ['min', 6], ['max', 64], ['match', /^[a-z0-9\!@#\$%^&*_+.]$/i] ],
}
Кто-нибудь знает подобную технологию? Я думаю, что среда валидации Rails решает проблему на неправильном уровне, потому что я обнаружил, что формы часто работают с несколькими моделями.