Rails (ActiveRecord), de nombreux de nombreux de la table
J'ai deux modèles, les Utilisateurs et les Groupes. Chaque groupe peut avoir de nombreux utilisateurs, et chaque utilisateur peut être dans plusieurs groupes.
J'ai actuellement quelque chose de simple comme:
Utilisateur:
has_many :groups
Groupe:
has_many :users
J'ai donc un groups_users table qui est juste de création de lignes avec group_id et user_id.
Je veux ajouter une autre colonne à cela, (que j'ai), la question est comment puis-je accéder à partir d'un modèle sans l'aide d'un custom appel SQL? Dans le modèle de groupe, je peux aller de soi.les utilisateurs et je peux aller de soi.groupes
Est-il un moyen de modifier la troisième colonne de ce tableau à partir d'un modèle d'utilisateur?
Désolé si c'est confus, veuillez en informer sur ce
OriginalL'auteur Ori | 2009-07-21
Vous devez vous connecter pour publier un commentaire.
Voici quelques tutoriels qui devraient vous aider. Fondamentalement, il existe deux approches pour faire nombre à beaucoup de travail, soit has_and_belongs_to_many ou has_many :through (recommandé).
liens:
Sont ces liens sont toujours d'actualité =?
OriginalL'auteur dave elkins
Dans Rails 3, vous voulez faire une table de jointure pour beaucoup de nombreuses relations, en utilisant le pluriel des noms des tables que vous voulez rejoindre dans l'ordre alphabétique. Donc, dans ce cas, il serait
groups_users
.modèles
OriginalL'auteur Edmund
Il semble que vous voulez accéder à une colonne de votre
user_groups
table par l'appel d'une méthode sur votreUser
modèle ou votreGroup
modèle.Quelques suggestions:
J'avais un nom à la table "
user_groups
" de travailler avec ActiveRecord de la pluralisation des attentes, mais je ne sais pas si c'est l'essentiel.Suivant les conseils de Dave, vous voulez mettre les choses en place à l'aide de la "
has_many :through
" technique...C'est un peu moins clair, mais gardez à l'esprit que chaque
User
pouvez avoir beaucoup deUserGroups
. Donc, si vous vouliez changer que la troisième colonne, vous auriez à trouver le particulier que vous cherchez.has_and_belongs_to_many
associations entre l'Utilisateur et le Groupe avec une table de jointure. Voir le deuxième lien sur l'autre réponse.dans django, il est facile d'ajouter une troisième colonne à la une de beaucoup de beaucoup de table d'assistance: il vous suffit d'ajouter le champ dans le modèle qui vous avez également accès par la "grâce". Une autre colonne dans votre exemple est utile si vous envoyez. g. souhaitez donner à l'utilisateur un certain état (actif ou non) dans le groupe.
OriginalL'auteur Ethan