我已经实现了“跟随”功能。显示“用户 A 正在关注的人”很简单,但显示“正在关注用户 A 的人”给我带来了麻烦。
我有 follow_links,其中有 id、user_id 和 follow_you_id 列。当用户 A 开始关注用户 B 时,列将类似于 (user_id = A, follow_you_id = B)。
为了向用户显示 A(@user) 正在关注,我可以简单地做
@follow_yous = @user.follow_yous
但我不确定如何显示关注 A(@user) 的用户
为此,我首先找到了所有相关链接。
@follow_links = FollowLink.where(:follow_you_id => @user.id)
现在我以为我可以这样做@follow_mes = @follow_links.users
,但它说user
是一个未定义的方法。所以我想我可以打电话user.follow_yous
或follow_you.users
.
我的下一个方法是
@follow_links = FollowLink.where(:follow_you_id => @user.id)
@follow_mes = User.where(:id => @user.id, :include => @follow_links)
我打算找到所有具有提供的 @follow_links 对象的 User 对象,但我认为语法错误。经过一番研究,我找不到一个像样的解决方案。我会很感激任何帮助。
更新:FollowLink 模型
belongs_to :user
belongs_to :follow_you, :class_name => "User"