У меня есть приложение rails, в котором есть список пользователей. У меня разные отношения между пользователями, например работал с другом, предпочитал. При перечислении пользователей я должен решить, может ли текущий пользователь добавить определенного пользователя к своим друзьям.
-if current_user.can_request_friendship_with(user)
=add_to_friends(user)
-else
=remove_from_friends(user)
-if current_user.can_request_worked_with(user)
=add_to_worked_with(user)
-else
=remove_from_worked_with(user)
can_request_friendship_with (пользователь) выглядит так:
def can_request_friendship_with(user)
!self.eql?(user) && !self.friendships.find_by_friend_id(user)
end
Моя проблема в том, что в моем случае это 4 запроса на пользователя. Перечисление 10 пользователей означает 40 запросов. Могу ли я как-то стремиться загрузить это?