2015-08-10 2 views
-1

У меня есть ассоциативная ассоциация Friendship. У пользователя много друзей благодаря дружбе. Я хочу получить список друзей друзей. Какой был бы самый эффективный способ сделать это? Я использую ActiveRecord. Благодаря!Друзья друзей в Ruby on Rails

+0

Вы должны включать, по крайней мере, некоторые * * попытка решения проблемы в вашем вопросе. SO не является форумом, чтобы просить других написать свой код для вас. – eirikir

+0

@eirikir Если вы этого не заметили, это не запрос для других, чтобы написать код для меня. Пожалуйста, внимательно прочитайте вопрос: я не прошу разрешения, но для некоторых идей о том, как повысить эффективность. SO также не является форумом для написания бессмысленных комментариев без конструктивного контента. Мне бы хотелось увидеть ваши идеи по этой проблеме. Благодарю. – dan

ответ

2
class User < ActiveRecord::Base 

    has_many :friendships 
    has_many :friends, through => :friendships, :class_name => "User" 

    def friends_of_friends 
    User.joins(:friendships).where(:user_id => friendships.pluck(:friend_id)) 
    end 

end 

модель дружба будет что-то вроде

class Friendship < ActiveRecord::Base 

    belongs_to :user 
    belongs_to :friend, :class_name => 'User' 

end 
+0

Что такое 'Друг' в этом контексте? – dan