Не уверен, как конвертировать SQL в Rails ActiveRecord - PullRequest
1 голос
/ 30 марта 2012

Я запускаю этот оператор SQL

select * from checkins where user_id in (SELECT friend_id from friendships where user_id=1);

Таблица пользователей id |имя |электронная почта

Таблица дружбы user_id |friend_id

Checkins Table user_id |checkin_time

Я пробовал

friends = Friendship.select("friend_id").where("user_id = 1");

Checkin.where("user_id = "+friends);

Есть идеи, как переписать это с Active Record?Я чувствую, что должен быть простой способ вытащить это ...

1 Ответ

2 голосов
/ 30 марта 2012

Как насчет:

Checkin.joins("INNER JOIN friendships ON friendships.friend_id = checkins.user_id).where('friendships.user_id = ?', 1)

или, для чего-то более похожего на вашу оригинальную идею:

friends = Friendship.select("friend_id").where("user_id = 1").map { |f| f.friend_id };
Checkin.where(:user_id => friends);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...