как добавить валидатор клиента в модель рельсов - PullRequest
0 голосов
/ 07 декабря 2010

Я знаю, что ActiveRecord предоставляет некоторые макросы, такие как validates_uniqueness_of validates_size_of сделать некоторую проверку для пользовательского ввода. но мне интересно, можно ли предоставить некоторый метод проверки, подобный обратному вызову, который будет использоваться в качестве сокращенного метода проверки на уровне модели. например, Я хочу проверить, что входная строка состоит только из букв от 'a' до 'h', смешно? но это происходило время от времени.

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

Вы можете создавать пользовательские функции с помощью:

validate :custom_function

def custom_function
  ...
end

Вы также можете использовать регулярные выражения для проверки строк. Для вашего примера я бы использовал:

validates_format_of :attribute, :with => /^[a-h]+$/
1 голос
/ 07 декабря 2010

Направляющие rails имеют хороший пример того, как создавать свои собственные валидаторы. Если вы используете Rails 3, вы можете сделать это так:

class Foo < ActiveRecord::Base
  validate :from_a_to_h

  # Use the name of your attribute in place of :input and input.
  def from_a_to_h
    errors.add(:input, "must contain only letters from a to h") if input =~ /[i-Z]+/
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...