2009/3/31 Nelson Fernandez <[email protected]>: > > > 2009/3/30 dwayne <[email protected]> >> >> Estoy con un problemilla que seguro para alguno acá va a ser una gilada: >> >> Tengo el modelo Persona. No quiero exigir el DNI, pero si se repite el >> nombre completo de una persona entonces sí debe especificarse el DNI para >> diferenciar. >> Intenté lo siguiente pero no funciona. >> >> class Persona < ActiveRecord::Base >> >> validates_uniqueness_of :dni, :allow_nil => true, :allow_blank=>true, >> :message=>I18n.t('persona.dni_already_exists') >> validates_uniqueness_of :dni, :scope=>[:nombres, :apellidos], :allow_nil >> => true, :message=>I18n.t('persona.persona_already_exists') >> >> end >> >> Estoy cegado, debe ser fácil. ¿Alguien? >> > > no se si esto andará pero puede estar cerca... > > validates_presence_of :dni, :if => Proc.new {|p| !Persona.find(:select => > '1', :conditions => ["(nombre = ?) and (apellido = ?)", p.nombre, > p.apellido]).blank? } >
Hrm, debería andar (claro que sigo pensando que lo de Dwayne también :P) -- por otro lado, a ese código le cambiaría dos cosas. 1) El proc ese extraerlo a un metodo privado y revertiria la logica (:unless => :name_is_unique?), y 2) Usaría self.class en lugar de Persona. Igual, me gustaría ver qué tests fallan con lo otro, capaz que así es más fácil darse cuenta qué está mal :) -f > :: nelson :: > artesano de software / software craftsman > http://netflux.com.ar > > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > > _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
