On Apr 13, 2010, at 3:15 PM, Pablo Marrero wrote:
Buenas gente, tengo una duda de como modelar una relacion y seguro
por aca me la contestan al toque.. :)
Tengo tres modelos, Persona, Cargo, Empresa y necesito representar
que una persona esta asignada en una empresa con un determinado
cargo, entre determinadas fechas.
En principio pensaba crear un modelo Asignacion, que haga el join
correpondiente, con lo cual tendria en asignacion los atributos:
personas_id
cargos_id
empresas_id
fecha_desde
fecha_hasta
La duda que me surge es como ponerlo para que AR maneje esa
relacion, se me ocurrio hacer lo mismo que hago cuando tengo una
tabla de relacion entre dos modelos, utilizando el has_many through,
pero no me queda claro si funciona cuando tengo que relacionar tres
modelos.
alguna sugerencia de como expresar esto?
Yo haría así:
class Person < ActiveRecord::Base
has_many :asignacions
end
class Asignacion < ActiveRecord::Base
belongs_to :person
belongs_to :empresa
belongs_to :cargo
end
class Empresa < ActiveRecord::Base
has_many :asignacions
end
class Cargo < ActiveRecord::Base
has_many :asignacions
end
Probaste haciendo así?
No sé si es necesario usar el has_many :through
Ernesto Tagwerker
(646) 374-8240
http://etagwerker.com
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar