Bonjour à tous,
j’ai un problème :
j’ai des connexions qui passent à travers des liens,équipements,ports
(un lien est entre deux ports de deux équipement, un port appartient Ã
un équipement)
j’ai donc comme relation entre ceux de droite :
class Link < ActiveRecord::Base
belongs_to :src_device, :class_name => “device”, :foreign_key =>
“src_device_id”
belongs_to :dst_device, :class_name => “device”, :foreign_key =>
“dst_device_id”
belongs_to :src_port, :class_name => “port”, :foreign_key =>
“src_port_id”
belongs_to :dst_port, :class_name => “port”, :foreign_key =>
“dst_port_id”
class Port < ActiveRecord::Base
belongs_to :device
has_many :links
class Device < ActiveRecord::Base
has_many :links
has_many :ports
Maintenant, je peux avoir plusieurs connexions sur un même
équipement/port/lien et je peux avoir plusieurs équipement/port/lien par
connexion.
Donc là je pensais rajouter cela à la connexion (en suivant ce qui est
dit dans ce lien :
http://paulbarry.com/articles/2007/10/24/has_many-through-checkboxes")
:
has_many :links, :through => :link_connections
has_many :ports, :through => :port_connections
has_many :devices, :through => :device_connections
et faire la symétrie pour les équipement/port/lien
Là ou ça se corse c’est qu’une connexion peut passer plusieurs fois par
le même équipement/port/lien…
Et là je vois pas trop comment faire, sauf créer un modèle
“ConnexionFragment” qui sera un fragment de connexion et qui lui aura
une relation one-to-many avec les connexions et une relation one-to-many
avec les équipement/port/lien (double one-to-many pour les
équipements/ports) mais je trouve que je perds pas mal de simplicité…
Vous auriez pas une idée plus simple/elegante ?