Сбой поиска по внешнему ключу в Rails 3 - PullRequest
0 голосов
/ 25 ноября 2010

Я пишу небольшое сообщество в 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]])}

Есть идеи, что не так?Это правильный синтаксис?

ОБНОВЛЕНИЕ

Итак, я хочу добиться:

  1. Получить все контакты, где находится пользовательустановить как друга (friend_id).
  2. Тогда я хотел бы получить только контакты из вышеуказанного запроса, которые пользователь еще не имеет в качестве друга (profile_id).

1 Ответ

0 голосов
/ 25 ноября 2010

Во второй строке вашего кода параметры [: profile_id] и profile.friend_id необходимы одинаково ... поскольку в первом запросе вы ищете запись, где friend_id == params [: profile_id].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...