2010-02-04 3 views
1

Je suis un peu confus quant à la façon dont les "relations" sont créées/traitées dans ROR/rake.Ruby On Rails Relations avec le modèle ORM

Est-ce que quelqu'un peut confirmer si ce qui suit est correct?

  1. Codez la "relation xxx" dans le fichier de migration DB. Migrez ceci une fois terminé.
  2. Code dans la relation finale (has_xxx ...) dans le fichier de modèle.

Si tel est le cas, ROR peut-il autogeniser le fichier de migration DB à partir des modifications apportées au modèle?

Répondre

0

Vous êtes sur la bonne voie.
Dans votre migration, utilisez la méthode 't.references'. Par exemple:

t.references :user 

Cela créera une colonne 'user_id' dans votre base de données.
Ensuite, dans votre modèle, vous utilisez:

belongs_to :user 

Si vous souhaitez utiliser « has_xxx: widgets » dans votre modèle, la table de base de widgets a besoin de la colonne « whatever_id ». Rails ne modifie pas votre migration en fonction de votre modèle. AFAIK, Rails ne changera jamais votre migration après l'avoir créée. Vous allez devoir coder ces relations à la main.

+0

Je pense que l'OP demandait si les rails pouvaient générer automatiquement les références t en se basant sur la propriété belongs_to dans le modèle. – klochner