IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Relation many_to_many "compliquée"


Sujet :

Ruby on Rails

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Relation many_to_many "compliquée"
    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 :links
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    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/1...ugh-checkboxes) :
    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
    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 many-to-many avec les équipement/port/lien

    Vous auriez pas une idée plus simple/elegante ?

  2. #2
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Citation Envoyé par sdesbure Voir le message
    Bonjour à tous,
    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
    Dans quel modèle as-tu ce code?

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo