我一直在研究这个话题已经有一天了,我还没有看到一个可以充分利用这个问题的解决方案。我甚至会放弃,并说这是不可能的,但我看到大公司在他们的应用程序中实现了这一点!
我需要知道当前用户是否关注其他用户。我需要多次知道(对于current_user)而无需再次轮询数据库
解决方案需要友好以便重复使用。我想出的解决方案(对于重用不友好)如下:
module UsersHelper
def is_following?(user)
return false if current_user == user
user.is_following = Relationship.find_by(followed_id: user.id, follower_id: current_user.id)
end
end
现在可以在任何控制器中调用 is_following?(@user)
请注意,我可以访问current_user
,因为这个辅助方法将在控制器中调用,而不是模型。
这个实现很酷,对于一个模型,可能是两个......除了我需要在应用程序中的几乎所有很多关系中执行此操作。所以它必须是可扩展的。
我正在引用Twitter对他们的追随者所做的事情。