Проверка поля Activerecord одна за другой - PullRequest
0 голосов
/ 05 февраля 2012

Я хотел бы знать, как вы проверяете поле после прохождения других проверок, например, у меня есть:

validates_numericality_of :field
validates_inclusion_of :field (after validating field's numericality)

Заранее спасибо.

1 Ответ

1 голос
/ 05 февраля 2012

Вы должны написать собственный метод проверки для этого.

Вот как я бы это сделал:

validate :custom_inclusion

private

def custom_inclusion
    range = (1..100)
    begin
      Kernel.float(field)
    rescue ArgumentError
      errors.add(:field,"is not a number") and return
    end

    if !(range.min < field.to_i && range.max > field.to_i)
      errors.add(:field,"is not between #{range.min} and #{range.max}")
    end
end

где field - это атрибут модели, который вы хотите проверить.

...