Как насчет:
Friend.where(:user_id => [user.id, self.id], :friend_id => [user.id, self.id], :status => 'x')
Конвертировать в SQL будет:
"ВЫБРАТЬ \" друзей \ ". * ИЗ \" друзей \ "ГДЕ \" друзей \". \" user_id \ "IN (10, 9) И \" friends \ ". \" friend_id \ "IN (10, 9) AND \" friends \ ". \" 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">]