У меня есть ассоциативная ассоциация Friendship
. У пользователя много друзей благодаря дружбе. Я хочу получить список друзей друзей. Какой был бы самый эффективный способ сделать это? Я использую ActiveRecord. Благодаря!Друзья друзей в Ruby on Rails
-1
A
ответ
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
Смежные вопросы
- 1. Удаление друзей в Ruby on Rails
- 2. Функция списка друзей Ruby on Rails
- 3. друзья друзей в MongoDB
- 4. Интервью собеседника: друзья друзей друзей
- 5. Друзья друзей Facebook
- 6. Realtime Обновления друзей на друзья: новые друзья
- 7. Facebook друзья друзей
- 8. Друзья друзей друзей facebook вместе с fql
- 9. Ruby on Rails view
- 10. показать данные друзей внутри вкладки аккордеона Ruby on rails
- 11. Получить все друзья список друзей
- 12. Facebook graph api друзья друзей
- 13. Ruby On Rails on eHost
- 14. Ruby vs. Ruby On Rails
- 15. Curl on Ruby on Rails
- 16. Попадая друзья друзей в FB графа API
- 17. Ruby On Rails Установка
- 18. Ruby on rails console
- 19. Ruby On Rails Javascript
- 20. Настройка Ruby on rails
- 21. Ruby On rails validations
- 22. Ruby on Rails Calculations
- 23. Ruby on Rails Secrets.yml
- 24. Ruby On Rails Application.html.haml
- 25. Ruby on Rails Расшифровка
- 26. Ruby on Rails Этикетки
- 27. ruby on rails form_for
- 28. Ruby on Rails routes.rb
- 29. Ruby on Rails Association
- 30. Изучение Ruby on Rails?
Вы должны включать, по крайней мере, некоторые * * попытка решения проблемы в вашем вопросе. SO не является форумом, чтобы просить других написать свой код для вас. – eirikir
@eirikir Если вы этого не заметили, это не запрос для других, чтобы написать код для меня. Пожалуйста, внимательно прочитайте вопрос: я не прошу разрешения, но для некоторых идей о том, как повысить эффективность. SO также не является форумом для написания бессмысленных комментариев без конструктивного контента. Мне бы хотелось увидеть ваши идеи по этой проблеме. Благодарю. – dan