2010-07-18 6 views
0

Est-il possible de créer une table de jointure sans modèle. J'ai un modèle appelé User et Pet. Je veux que l'utilisateur n'ait qu'un animal de compagnie et un animal de compagnie pour n'avoir qu'un seul propriétaire. Très simple. Cependant, j'essaie de comprendre comment créer une table de jointureRails Rejoindre une table sans le modèle

pets_users qui contient à la fois users.id et pets.id sans avoir à créer le modèle actuel. Est-ce possible? Est-ce un mauvais design?

Si possible, comment créer une nouvelle entrée dans la table pets_users?

Répondre

1

Vous n'avez pas besoin d'une table de jointure pour cela.

User has_one Pet 
Pet belongs_to User 

La table animal aurait alors une colonne user_id et Active Record gère le reste pour vous.

+0

Cela permettrait d'imposer une relation un-à-un entre les animaux de compagnie et les utilisateurs, non? Autrement dit, chaque animal de compagnie ne peut appartenir qu'à un seul utilisateur. Ou est-ce que j'ai mal compris quelque chose? – skyler

+0

@skyler, c'est vrai. La question initiale: «Je veux que l'utilisateur n'ait qu'un seul animal de compagnie et qu'un animal de compagnie ait seulement un propriétaire», dans ce cas, aucune table de jointure n'est nécessaire. Si, toutefois, une relation plusieurs-à-plusieurs était nécessaire, une table de jointure serait nécessaire. –

Questions connexes