Bonjour je voudrais savoir si je peux simplifier mon code.
J’ai les modèles suivants :
user (has_many :roles)
room (has_many :roles)
role has_many :users, :rooms
La table role contenant, en plus des clés étrangères, le code role
(admin, simple utilisateur, …)
Pour rechercher tous les administrateurs d’une salle, j’ai écrit une
methode dans le modèle utilisateur qui va chercher dans la table role
les enregistrements pour lesquels le code_role est admin pour la salle
spécifiée en paramètre.
et ensuite je boucle sur ces roles pour aller récupérer les users
correspondant.
Cela donne le code suivant mais je me demande s’il n’y a pas plus
simple comme code
def self.find_admins_of(room)
roles = Role.find_admins_by(room.id)
admins = []
for role in @roles
admins << find(role.user_id)
end
admins
end