Spec-Zone.ru › Ruby on Rails 4.2

модуль ActiveRecord::Validations

Включенные модули:
ActiveModel::Validations

Active Record Валидации

Active Record включает в себя большинство своих валидаций из ActiveModel::Validations, все из которых принимают аргумент :on для определения контекста, в котором активны валидации. Active Record всегда предоставляет контекст :create или :update в зависимости от того, является ли модель new_record?.

Открытые методы экземпляра

save(options={}) Показать исходный код
# File activerecord/lib/active_record/validations.rb, line 36
def save(options={})
  perform_validations(options) ? super : false
end

Процесс валидации при сохранении можно пропустить, передав validate: false. Регулярный метод #save заменяется этим, когда модуль валидаций смешан, что является стандартным по умолчанию.

Вызывает метод суперкласса
save!(options={}) Показать исходный код
# File activerecord/lib/active_record/validations.rb, line 42
def save!(options={})
  perform_validations(options) ? super : raise_record_invalid
end

Попытка сохранить запись так же, как и #save, но при этом будет вызвано исключение RecordInvalid, а не возвращено значение false, если запись не валидна.

Вызывает метод суперкласса
valid?(context = nil) Показать исходный код
# File activerecord/lib/active_record/validations.rb, line 56
def valid?(context = nil)
  context ||= (new_record? ? :create : :update)
  output = super(context)
  errors.empty? && output
end

Выполняет все валидации в указанном контексте. Возвращает true, если ошибки не найдены, false, в противном случае.

Алиас validate.

Если аргумент равен false (по умолчанию nil), контекст устанавливается в :create, если new_record? равно true, и в :update, если нет.

Валидации с отсутствующим параметром :on будут выполняться независимо от контекста. Валидации с указанным параметром :on будут выполняться только в указанном контексте.

Вызывает метод суперкласса ActiveModel::Validations#valid?
Также алиас: validate
validate(context = nil)
Псевдоним для: valid?
validate!(context = nil) Показать исходный код
# File activerecord/lib/active_record/validations.rb, line 72
def validate!(context = nil)
  valid?(context) || raise_record_invalid
end

Выполняет все валидации в указанном контексте. Возвращает true, если ошибки не найдены, иначе генерирует исключение RecordInvalid.

Если аргумент равен false (по умолчанию nil), контекст устанавливается в :create, если new_record? равно true, и в :update, если нет.

Валидации с отсутствующим параметром :on будут выполняться независимо от контекста. Валидации с указанным параметром :on будут выполняться только в указанном контексте.

Защищённые методы экземпляра

raise_record_invalid() Показать исходный код
# File activerecord/lib/active_record/validations.rb, line 78
def raise_record_invalid
  raise(RecordInvalid.new(self))
end

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API