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

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

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

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

Спасибо

Ответы на вопрос(1)

Решение Вопроса

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

validates_uniqueness_of :acronym, :allow_blank => true, :scope => [:group_id], :case_sensitive => false
 18 февр. 2015 г., 17:20
Спецификация для этогоit { is_expected.to validate_uniqueness_of(:acronym).scoped_to(:group_id).case_insensitive.allow_blank }
 02 апр. 2014 г., 22:08
Большое спасибо! Мой код стал намного более полным. Другие ответы предлагали использовать: если или: если, но я думаю, что это лучший способ. Любая проблема в выпуске: group_id из массива?

Ваш ответ на вопрос