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 :

Utilisation d'une Single Table Inheritance et des migrations


Sujet :

Ruby on Rails

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut Utilisation d'une Single Table Inheritance et des migrations
    Bonjour,

    J'ai un problème pour utiliser à la fois la STI et des migrations.
    Quand je passe par la STI pour créer des tables Students et Teachers héritées d'une table People (donc une gestion des 2 tables uniquement faites dans le modèle), je ne trouve pas de moyen pour utiliser comme clé étrangères dans une table Schools les id de la table Students.
    En fait lorsque je crée ma clé étrangère de façon habituelle, ma migration me déclenche une erreur sql en rapport avec la création de la clé étrangère student_id car la table Students n'existe pas.
    Quelqu'un aurait il une solution svp ?
    Merci d'avance.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Par défaut
    Salut,

    En fait lorsque je crée ma clé étrangère de façon habituelle
    C'est à dire?

    ma migration me déclenche une erreur sql en rapport avec la création de la clé étrangère student_id car la table Students n'existe pas.
    Si ton modèle est bien que "une école à plusieurs étudiants, chacun n'appartenant qu'à une école", au niveau de la base de données ta clé étrangère doit naturellement se trouver sur la table people (puisque c'est la seule qui existe, il n'y a pas de table students ni teachers).

    Dans tes modèles ActiveRecord, tu déclares ensuite la relation dans les modèle Student et School comme tu le ferais normalement.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Quand je passe par la STI pour créer des tables Students et Teachers héritées d'une table People
    Je crois que tu n'y es pas.
    Au final tu n'as qu'1 table "people" qui contient les students et les teachers.
    Il y a un champ supplémentaire qui permet de distinguer les students et les teachers, mais ils sont stockés dans la meme table.

    http://wiki.rubyonrails.org/rails/pa...bleInheritance

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/07/2011, 12h29
  2. [Toutes versions] Condition sur 2 champs d'une même table pour éviter des doublons
    Par btks59 dans le forum Modélisation
    Réponses: 6
    Dernier message: 23/05/2011, 09h48
  3. Routes et Single-table inheritance
    Par Javix dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 07/04/2009, 15h22
  4. Héritage (single-table inheritance)
    Par Javix dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 27/01/2009, 14h04
  5. [Single Table Inheritance] Documentation
    Par seb_asm dans le forum Design Patterns
    Réponses: 2
    Dernier message: 10/03/2005, 14h18

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