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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 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"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class Port < ActiveRecord::Base belongs_to :device has_many :linksMaintenant, je peux avoir plusieurs connexions sur un même équipement/port/lien et je peux avoir plusieurs équipement/port/lien par connexion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 class Device < ActiveRecord::Base has_many :links has_many :ports
Donc là je pensais rajouter cela à la connexion (en suivant ce qui est dit dans ce lien : http://paulbarry.com/articles/2007/1...ugh-checkboxes) :
et faire la symétrie pour les équipement/port/lien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 has_many :links, :through => :link_connections has_many :ports, :through => :port_connections has_many :devices, :through => :device_connections
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 many-to-many avec les équipement/port/lien
Vous auriez pas une idée plus simple/elegante ?
Partager