Bonjour à tous,
Je vais vous exposer un problème relativement complexe, je suis bloqué
et si quelqu’un pouvait me donner un coup de pouce je ne le remercierais
jamais assez !
Le concept :
J’ai une série de tables en DB (users, functions, expertizes, …)
Je souhaites mettre en place un système qui me permette de lier ces
différents objets entre eux de manière très flexible vie une seule
table, en “typant” les liaisons.
Mon idée :
Créer une table “objectrelations” qui contiendrait les champs suivants :
id
linkfrom_id
linkfrom_type
linkto_id
linkto_type
created_at
updated_at
stopped_at
#1 record de objectrelations :
id : 1
linkfrom_id : 1 # User ID = 1
linkfrom_type : “User”
linkto_id : 1 # Expertize ID = 1
linkto_type : “Expertize”
created_at : now()
updated_at : now()
stopped_at : NULL
Le problème :
Tout ceci fonctionne bien en DB, ça me permet de créer des liens entre
les différents objets, de remonter divers liens, de mettre fin à un lien
(via la colonne stopped_at) sans supprimer le lien en DB (on garde un
historique) …
Par contre, je ne vois vraiment pas comment modéliser tout ceci dans
Rails (dans les modèles).
Je penses avoir bien compris que je devrai utiliser le polymorphisme,
les “Through Associations” ou encore “L’héritage de table” mais je n’y
arrive pas.
J’ai regardé du côté de “acts_as_taggable”, ils utilisent un système
semblable mais uniquement dans un sens (n’importe quel objet -> des
tags). Malheureusement, ici je dois pouvoir lier n’importe quoi avec
n’importe quoi …
Est-ce que quelqu’un a une idée pour m’aider ? Comment dois-je m’y
prendre ?
Merci.