Rails: решение проблемы «unique username»
Известно что validates_unique_of не учитывает race conditions о чём сказано в документации. Там же рекомендуется использовать UNIQUE в DB при котором в случае дублирования поля будет InvalidStatement exception. Однако хотелось бы поймать его внутри model и добавить соответствующее сообщение errors.add(:username, «Username already in use») так же внутри model. Естественно напрашивается вариант override save, save! типа:
def save
super
rescue
errors.add(:username, "Username already in use")
end
Но выглядит не красиво, как хак. Может есть получше способ?