http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M000944
class Person < ActiveRecord::Base validates_uniqueness_of :user_name, :scope => :account_id end por lo que entiendo, en tu caso sería algo así class Documento < ActiveRecord::Base validates_uniqueness_of :number, :scope => :year end (advertencia: código no testeado, YMMV) Nacho On 6/14/07, Lautaro Bonetto <[EMAIL PROTECTED]> wrote:
Hola Emmanuel Eso lo podrías restringir en el MySQL creando una índice compuesto único. O sea... creas un índice y agregas todas las columnas que quieras que no se repitan y le agregas a ese índice que el atributo de único. Esto haría que el MySQL genere un error (excepción) cuando trates de insertar un registros con iguales valores en estos campos que otro existente. Saludos. On 6/14/07, Emmanuel Oga <[EMAIL PROTECTED]> wrote: > Que tal! Necesito hacer lo siguiente, a ver si se les ocurre algo: > > Mi cliente guarda unos documentos usando la siguiente numeracion: > > 2007: Documento 1 > 2007: Documento 2 > 2007: Documento 3 > 2007: ... etc > > 2008: Documento 1 > 2008: Documento 2 > 2008: Documento 3 > 2008: ... etc > > Cada vez que el año pasa se "resetea" el numero de documento. Podria > expresarlo en una tabla asi: > > Tabla: documentos > id: integer, pk > year: integer > number: integer > description: text > etc... > > Ahora bien, mi base mysql restringe la tabla de manera que nunca se > repita el id de registro. Como puedo forzar que no se repita la combinacion > año-numero de la tabla? > > ej; > > registro1 > 1, 2007, 1, "primer registro" # ok > 2, 2007, 2, "segundo registro" # ok > 3, 2007, 3, "tercer registro" # ok > 4, 2008, 1, "primer registro" # ok. Al cambiar de año resetea > automaticamente el numero > 5, 2008, 2, "segundo registro" # ok > 6, 2008, 3, "cuarto registro" # ok, el cliente se equivoco al describir > el registro pero esta ok. > 7, 2008, 3, "cuarto registro" # MAL! no puede haber dos registros numero > "3" en el 2008, por mas que tengan id diferente! > > Quiero que mi sistema restrinja la combinacion año-numero asi como > restringe el id: no permite que halla dos numeros de id iguales. Es esto > posible? Como lo manejaria ActiveRecord? > > Gracias! > > ------------------------------ > *Preguntá. Respondé. Descubrí.* > Todo lo que querías saber, y lo que ni imaginabas, > está en *Yahoo! Respuestas* (Beta). > * ¡Probalo ya! <http://ar.answers.yahoo.com/>* > > > _______________________________________________ > ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > > > -- Lautaro Bonetto Intermedia Systems http://www.intermediasystems.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
