Considérez ces deux ressources: utilisateur et groupe.Modélisation et routage des relations
Règles:
- Un groupe est détenu par un utilisateur;
- Un groupe contient de nombreux utilisateurs;
- Un utilisateur peut avoir plusieurs groupes;
- Un utilisateur peut s'occuper de plusieurs groupes;
Ce que j'ai:
class User
has_many :groups, :foreign_key => "owner_id"
has_and_belongs_to_many :attended_groups,
:class_name => "Group",
:join_table => "groups_members",
:foreign_key => "member_id"
end
class Group
belongs_to :owner, :class_name => "User", :foreign_key => "owner_id"
has_and_belongs_to_many :members, :class_name => "User",
:join_table => "groups_members",
:association_foreign_key => "member_id"
end
Ma question est: quelle est la meilleure solution (? Élégante) pour ajouter des actions dans le contrôleur de groupe, ainsi que routes à, tandis que le propriétaire voit son groupe (et tous membres), laissez-le voir qui n'est pas là et peut-être l'ajouter. Quelque chose comme:/groups/1/add_member/2. Même chose pour un utilisateur d'ajouter un groupe, alors qu'il voit sa page. J'ai réussi à le faire fonctionner, mais je voudrais voir comment il devrait être. Le problème est trop simple pour avoir une solution aussi compliquée que la mienne. Peut-être que la façon dont j'ai modélisé le problème n'est pas aussi la meilleure.
Juste pour le dossier, je suis un débutant complètement à Rails.
Veuillez commenter! Et merci d'avance!
Au début, je pensais que trop, mais comment ajouter un utilisateur existant en tant que membre d'un groupe de cette façon? L'utilisateur de la ressource existe en dehors du groupe, et je veux juste l'ajouter au groupe. – gab
Le nouveau bit en bas pourrait aider. –