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

Responder a