J'ai des utilisateurs qui sont membres de groupes via une table de jointure d'appartenance, et l'un des attributs de cette table de jointure est "administrator". J'essaie de faire un contrôle à l'intérieur de la vue des membres d'un groupe, en passant en revue chaque membre pour voir s'il est administrateur.Accéder aux valeurs dans une table has_many: through
De l'avis j'ai essayé les éléments suivants:
for user in @group.users
if user.administrator?
...DO STUFF
end
end
J'ai aussi essayé ceci dans le contrôleur:
@administrators = @group.memberships.find(:all, :conditions => ["administrator = 1"])
Mais pas de chance. Des pensées?
MISE À JOUR - par-dessous, mettez une méthode dans le modèle de l'utilisateur:
def is_administrator_of(group_id)
Membership.find(:first, :conditions => ['user_id = ? AND group_id = ? AND administrator = ?', self[:id], group_id, true])
end
Avec une très petite modification, cela a fonctionné génial. Je ne sais pas si le fait de réussir est la bonne façon de le faire, mais cela a bien fonctionné. Merci! Membership.find (: first,: conditions => ['id_utilisateur =? AND id_groupe =? AND administrateur =?', Self [: id], id_groupe, true]) –