2011-12-14 3 views
0

У меня есть Friend модель:Rails, как запрос для записи на основе двух полей

user_id, friend_id, status (approved, pending, ignored) 

Я хочу, чтобы запрос, если user1 & пользователя 2 есть запись.

user1.id = 10 
user2.id = 9 

Друг Модель может иметь либо

10,9,x 
9,10,x 

Как я могу написать рельсы запрос, который будет видеть, если запись существует, или для комбинации? Благодаря

ответ

1

Как насчет:

Friend.where(:user_id => [user.id, self.id], :friend_id => [user.id, self.id], :status => 'x') 

переустроенные в SQL будет:

"SELECT \" друзья \ друзей \ "где \ "друзей \" \» * FROM \.". "user_id \" IN (10, 9) И \ "друзья \". \ "friend_id \" IN (10, 9) И \ "друзья \". \ "status \" = 'x' "

Он вернет оба случая одним запросом:

[#<Friend id: 1, user_id: 10, friend_id: 9, status: 'x', created_at: "2011-06-25 15:09:00", updated_at: "2011-11-01 18:28:50">, #<Friend id: 2, user_id: 9, friend_id: 10, status: 'x', created_at: "2011-06-25 15:11:06", updated_at: "2011-11-01 18:28:50">] 
Смежные вопросы