是否有一种快速方法只能让那些没有关注其他用户的用户呢?
我试图创建一个小小的"建议用户关注"模块,我想只显示附近的用户和尚未被跟踪的用户。
这是我的控制者:
@user = User.near(current_user.location,50).where.not(id: current_user.id)
在我看来,我可以获取附近的用户列表并进行某种检查:
- @user.each do |user|
- if !current_user.following?(user)
= user.name
= <follow btn code>
但我希望它已经通过控制器中的@user
进行检查。我认为这会更清洁,或者有人有任何其他建议吗?
答案 0 :(得分:1)
使用select
模块的Enumerable
进行过滤很容易(已包含在ActiveRecord
个集合中)
在控制器中:
@user = User.near(current_user.location,50).where.not(id: current_user.id)
@user = @user.select{ |u| !current_user.following?(u) }
但请注意,这会将@user
的类型从ActiveRecord
集合更改为简单数组。