Question

J'ai une association de rails polymorphes plusieurs à un dans mon application rails pour un modèle "cas". Il y a beaucoup de choses qui ont des cas, donc j'accède au cas que chaque chose a en faisant 'thing_that_has_a_case.case'.

Cependant, j'essaie d'aller dans l'autre sens et je ne sais pas comment. J'ai accès à l'objet de cas, mais je veux accéder à la chose qui est en train d'être mise en casse. Les rails ont-ils un moyen de le faire? Je pouvais le faire avec un commutateur moche qui fait une recherche SQL différente pour chaque type d'objet, mais j'espérais que les rails auraient un meilleur moyen. Merci!

Était-ce utile?

La solution

Vous pouvez ajouter quelque chose comme ceci à votre modèle de cas:

belongs_to :parent, :polymorphic => true

.. qui suppose que vous avez des champs parent_id et type_parent dans votre modèle de cas (changez le premier argument en appartient_to en fonction de votre ont nommé ces champs d’association). Une fois que vous avez cela, vous devriez juste pouvoir faire référence à case.parent pour une instance donnée.

Et juste pour clarifier, l'un des côtés de cette relation a quelque chose comme:

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

(je suppose que vous avez déjà ce travail en fonction de votre description)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top