Je suis en train de coder une petite communauté dans Rails 3 et j'ai deux tables, Profiles et Contacts. Lorsqu'un utilisateur ajoute une amitié avec un autre utilisateur, il est enregistré dans une table appelée Contacts qui contient deux colonnes; profile_id et friend_id.La recherche de clé étrangère échoue dans Rails 3
PROFILE_ID: C'est là que les utilisateurs ID est enregistré Friend_id: C'est là l'autre ID utilisateur est enregistré
Si un autre utilisateur ajoute l'utilisateur comme un ami que je veux qu'il apparaisse sur les utilisateurs à domicile écran afin qu'il puisse ajouter l'autre utilisateur, mais je veux seulement qu'il apparaisse si l'utilisateur n'a pas déjà l'autre utilisateur en tant qu'ami.
J'ai essayé le code ci-dessous, mais il ne semble pas fonctionner comme je le veux.
@connections = Contact.where(["friend_id = ?", params[:profile_id]])
@notfriends = @connections.find_all {|profile| Contact.where(["profile_id = ? AND friend_id = ?", profile.friend_id, params[:profile_id]])}
Des idées quel est le problème? Est-ce la syntaxe correcte?
MISE À JOUR
Alors ce que je cherche à atteindre est:
- Obtenir tous les contacts où l'utilisateur est défini comme ami (friend_id).
- Ensuite, je voudrais obtenir seulement les contacts de la requête ci-dessus que l'utilisateur n'a pas déjà en tant qu'ami (profile_id).
Avez-vous utilisé les bonnes associations dans les modèles 'Contacts' et 'Profils'? (http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html) – Patrick
Oui, je le pense, dans Contacts j'utilise: "belongs_to: profile" et dans Profiles j'utilise: "has_many: contacts". Est-ce correct? –