Pregunta

Tengo una asociación de rieles polimórficos de muchos a uno en mi aplicación de rieles para un modelo de 'caso'. Hay muchas cosas que tienen casos, así que accedo al caso que cada cosa tiene haciendo 'thing_that_has_a_case.case'.

Sin embargo, estoy tratando de ir hacia otro lado y no estoy seguro de cómo. Tengo acceso al objeto de caso, pero quiero acceder a lo que se está entubado. ¿Los rieles tienen una manera de hacer esto? Podría hacerlo con un interruptor feo que realiza un hallazgo sql diferente para cada tipo de objeto, pero esperaba que los rieles tuvieran una mejor manera. Gracias!

¿Fue útil?

Solución

Puede agregar algo como esto a su modelo de caja:

belongs_to :parent, :polymorphic => true

..que supone que tiene campos parent_id y parent_type en su modelo de caso (cambie el primer argumento a belong_to dependiendo de cómo han nombrado estos campos de asociación). Una vez que tenga esto, debería poder consultar case.parent para una instancia de caso determinada.

Y, solo para aclarar, el lado de esta relación tiene algo como:

has_many :cases, :as => :parent, :dependent => :destroy

(Supongo que ya tiene eso funcionando según su descripción)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top