Esta es una posibilidad, el problema es que si no tengo el through no voy a
poder acceder desde la empresa a todas las personas asignadas por ejemplo y
ese tipo de accesos...

gracias por la respuesta
salute1


El 13 de abril de 2010 17:49, Ernesto Tagwerker
<[email protected]>escribió:

> 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
>
>


-- 
Pablo Marrero
Tel: 099 927 566
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a