Mil gracias, esto me sirve, era lo que buscaba.

poli

2011/6/26 geronimo diaz <[email protected]>

> Hola paolo, en rails no se puede definir una primary key compuesta, pero
> entiendo que queres definir basicamente una relacion NxN, para ello tenes 2
> opciones que te provee el framework:
>
> #Student
>
> has_and_belongs_to_many :class_changes
>
> #Class
> has_and_belongs_to_many :student_changes
>
> Este approach tiene la necesidad de la creacion de la tabla (por la cual
> hacer el join), *sin id*, que resulta de la relacion Student N< --- >N
>  Class:
>
> #table students_classes
> student_id | class_id | date ... (cualquier atributo extra que necesite la
> relacion)
>
> Por otro lado podes modelar lo mismo mediante el uso de la opcion :through
> al definir la asociacion:
>
> #Change (esta tabla si lleva atributo id)
> belongs_to :student # foreing_key student_id
> belogns_to :class    # foreing_key class_id
>
>
> #Student
> has_many :changes
> has_many :classes, :through => :changes
>
> #Class
> has_many :changes
> has_many :students, :through => :changes
>
>
> Cual appoach utilizar depende si vas a necesitar manipular la relacion NxN,
> es decir, la tabla por la que se hace el join, en el caso de que necesites
> manipular los cambios de clases entonces el segundo approach seria el
> adecuado a mi entender.
>
>
> Saludos
>
> El 26 de junio de 2011 16:06, Paolo Loran <[email protected]>escribió:
>
> A nadie le paso esto? que tuviera que definir un nuevo objeto tipo
>> transaccion?? donde tuviera una primary key compuesta donde no tuviera id
>> pero si numero de cliente, y fecha??
>>
>> poli
>>
>>
>> 2011/6/25 Paolo Loran <[email protected]>
>>
>>> Mi idea era tener una tabla en BD que se llame ClassChanges que no
>>> tuviera ID como PK sino que tuviera => student_id, date y class_id como
>>> primary key
>>> En mi modelo habia hecho lo siguiente:
>>>
>>> #Student
>>> has_many :class_changes
>>>
>>> #ClassChange
>>> belongs_to :student
>>> belongs_to :class
>>>
>>> #Class
>>> has_and_belongs_to_many :class_changes
>>>
>>> no se si es correcto mi planteo
>>>
>>> Un estudiante puede tener muchos cambios de clases pero no puede tener
>>> mas de uno para el mismo dia y clase.
>>> Una clase puede estar relacionada a muchos cambios de clases.
>>>
>>> poli
>>>
>>>
>>> 2011/6/25 Martin Aceto <[email protected]>
>>>
>>>> 2011/6/25 Paolo Loran <[email protected]>:
>>>> > Hola a todos queria consultarles lo siguiente:
>>>> >
>>>> > Tengo un Alumno que posee cambios de clases a una fecha
>>>> >
>>>> > Student{name, address, dni} donde su primary key seria id (generada
>>>> > automaticamente en migrations)
>>>> >
>>>> > por otro lado tengo:
>>>> >
>>>> > CambioDeClase{student_id, date, :class_id} donde su primary key no
>>>> deberìa
>>>> > ser id sino que deberìa ser => :student_id, :date, :class_id
>>>> >
>>>> > Es posible armar este tipo de objeto donde no me permita ingresar un
>>>> mismo
>>>> > alumno para la misma fecha a la misma clase?
>>>> >
>>>> > Saludos.
>>>> > poli
>>>> >
>>>> > _______________________________________________
>>>> > Ruby mailing list
>>>> > [email protected]
>>>> >
>>>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>>> >
>>>> >
>>>>
>>>> Hola Paolo,
>>>>
>>>> no se como tenes armada la relación pero no te sirve
>>>> validates_associated ?
>>>>
>>>>
>>>> http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#method-i-validates_associated
>>>>
>>>>
>>>> Saludos.-
>>>>
>>>> --
>>>> Martin
>>>> _______________________________________________
>>>> 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
>>
>>
>
>
> --
> Geronimo Diaz
> v1 | services
> [email protected]
> [email protected]
>
> _______________________________________________
> 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