Проверка для обеспечения уникальности, но игнорирование пустых значений?
У меня есть следующая проверка поля модели:
validates_uniqueness_of :acronym, :scope => [:group_id], :case_sensitive => false
Проблема в том, что это поле является необязательным, и пустое значение /nil возвращается как уже сделанное сокращение. Я только хочу проверить, что аббревиатура уникальна, если было предоставлено значение. Есть ли способ обновить эту проверку, чтобы иметь место только в том случае, если есть фактическое значение. Не нуль/пусто?
Спасибо
Ответы
Ответ 1
Да, есть два возможных варианта, которые вы можете передать валидации для необязательных полей: :allow_blank
или :allow_nil
, которые будут пропускать проверки в полях blank
и nil
, соответственно. Если вы измените свою валидацию на следующую, вы получите нужное поведение:
validates_uniqueness_of :acronym, :allow_blank => true, :scope => [:group_id], :case_sensitive => false