2010-07-06 5 views
0

Ceci est beaucoup plus difficile dans le code, que dans la vraie vie. =)
Mais de toute façon,
Mes utilisateurs ont des gestionnaires, et vice versa ...Ruby on Rails: A et appartient à de nombreuses relations: comment détruire une relation?

Comment puis-je supprimer la relation?

@selected_user = User.find(params[:id]) 
@selected_user.managers.delete_if{|x| x.standard_user_id == params[:id].to_i} 

Ceci est un référentiel d'auto a et appartient à plusieurs, donc j'ai une autre table qui n'a que deux colonnes de clés étrangères, les deux pointant vers la table des utilisateurs. Cette table de recherche n'a pas de modèle.

Répondre

2
@report = User.find(params[:report]) 
    @manager = User.find(params[:manager]) 
    @manager.standard_users.delete(@report) 

Les gestionnaires ont les utilisateurs standard utilisateurs standard ont des gestionnaires

1

Ne fonctionne pas? @selected_user.managers.each{|x| x.destroy!} ou Managers.delete_all "standard_user_id = params[:id]"

+0

Je devrais probablement avoir ajouté qu'il est un référentiel d'auto a et appartient à de nombreuses relations – NullVoxPopuli

+0

chose est, il n'y a pas en fait une colonne appelé gestionnaires ou standard_users dans la table des utilisateurs. – NullVoxPopuli

+0

comme il se trouve, et je me sens boiteux pour avoir ce problème, je n'appelais pas la bonne méthode. chose auto-référentielle peut devenir confuse si les noms de variables ne fonctionnent pas correctement – NullVoxPopuli

Questions connexes