У меня есть базовая модель Rails с двумя свойствами, имя и код. У меня есть validates_uniqueness_of для Код Недвижимость. Тем не менее, я хотел бы настроить сообщение: показать имя дубликата. Есть ли способ получить доступ к этому дублирующему элементу?Rails - validates_uniqueness_of: доступ к дублируемому элементу?
Например, скажем, я сначала ввести запись называется Expired с кодом EXP. Затем я ввожу Опыт с кодом EXP. Я хотел бы: сообщение сказать что-то вроде «Код, уже принятый Expired».
> m1 = Model.new(:name => 'Expired', :code => 'EXP')
> m2 = Model.new(:name => 'Experience', :code => 'EXP')
> m1.save!
> m2.save!
validates_uniqueness_of :code,
:message => "Code already taken by #{duplicate.name}"
Есть ли встроенный в Rails построить что держит дубликат объекта, так что я могу получить доступ к нему, как я в: сообщение? Или есть другой способ, которым я могу запустить код, чтобы определить дубликат, когда эта проверка активируется?
Great! Работает как шарм! Не знаю, почему я никогда не знал об этом, почему я ничего не мог найти об этом. Большое спасибо! – istrasci
Добро пожаловать:] –
Думаю, я бы добавил, что нам нужно добавить логику, чтобы убедиться, что _self.id_ - это не то же самое, что _model.id_. В противном случае мы никогда не сможем обновить существующий элемент (если только это не требуется). – istrasci