Я пишу небольшое сообщество в Rails 3, и у меня есть две таблицы: Профили и Контакты.Когда пользователь добавляет дружбу с другим пользователем, он сохраняется в таблице «Контакты», которая содержит два столбца;profile_id и friend_id.
Profile_id: здесь сохраняется идентификатор пользователя. Friend_id: здесь сохраняется идентификатор другого пользователя.
Если другой пользователь добавляет пользователя в друзья, я хочу егочтобы отображаться на домашнем экране пользователя, чтобы он также мог добавить другого пользователя, но я хочу, чтобы он отображался, только если у пользователя еще нет другого пользователя в качестве друга.
Я пыталсяприведенный ниже код, но, кажется, он не работает так, как я хочу.
@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]])}
Есть идеи, что не так?Это правильный синтаксис?
ОБНОВЛЕНИЕ
Итак, я хочу добиться:
- Получить все контакты, где находится пользовательустановить как друга (friend_id).
- Тогда я хотел бы получить только контакты из вышеуказанного запроса, которые пользователь еще не имеет в качестве друга (profile_id).