我有一个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-friends-friends-friends-friends-friends看起来像:
def can_request_friendship_with(user)
!self.eql?(user) && !self.friendships.find_by_friend_id(user)
end
我的问题是,在我的例子中,这意味着每个用户有4个查询。清单10中的用户表示40个查询。我能不能迫不及待地装上这个?