Подтвердить что ты не робот

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

У меня есть следующая проверка поля модели:

validates_uniqueness_of :acronym, :scope => [:group_id], :case_sensitive => false

Проблема в том, что это поле является необязательным, и пустое значение /nil возвращается как уже сделанное сокращение. Я только хочу проверить, что аббревиатура уникальна, если было предоставлено значение. Есть ли способ обновить эту проверку, чтобы иметь место только в том случае, если есть фактическое значение. Не нуль/пусто?

Спасибо

4b9b3361

Ответ 1

Да, есть два возможных варианта, которые вы можете передать валидации для необязательных полей: :allow_blank или :allow_nil, которые будут пропускать проверки в полях blank и nil, соответственно. Если вы измените свою валидацию на следующую, вы получите нужное поведение:

validates_uniqueness_of :acronym, :allow_blank => true, :scope => [:group_id], :case_sensitive => false