Проверка минимальной и максимальной длины для отдельных случаев за один раз - PullRequest
4 голосов
/ 14 января 2011

Я проверяю поле фамилии, как это

  validates :surname,
    :presence       => true,
    :length         => { :within => min_surname_length..max_surname_length, :message => "is bad (minimum is #{min_surname_length}, maximum is  is #{max_surname_length})" }

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

validates_length_of :name, :minimum => 3
validates_length_of :name, :maximum => 30

В двух словах я хотел бы сделать что-то вроде этого (я знаю, это неправильно):

  validates :surname,
    :presence       => true,
    :length         => { :within => min_surname_length..max_surname_length, 
                         :message => "is bad (minimum is #{min_surname_length}" IF MINIMUM, 
                         :message => "is bad (maximum is  is #{max_surname_length})" IF MAXIMUM }

Как это можно сделать за один раз?


РЕШЕНИЕ

Вот как я буду его использовать:

validates :surname,
    :length         => { :within => min_password_length..max_password_length,
                        :too_short => 'too short message',
                        :too_long => 'too long message' }

1 Ответ

6 голосов
/ 14 января 2011
validates_length_of :surname,
  :within => 3..30,
  :too_short => 'too short message',
  :too_long => 'too long message'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...