【问题标题】:Rails: Record checking if user is already following another user through controllerRails:记录检查用户是否已经通过控制器关注另一个用户
【发布时间】:2015-12-17 02:52:21
【问题描述】:

有没有一种快速的方法来只获取尚未关注其他用户的用户?

我正在尝试创建一个小的“建议关注的用户”模块,我想只显示附近但尚未关注的用户。

这是我的控制器:

@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 进行检查。我认为这会更干净,或者如果有人有任何其他建议?

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord


【解决方案1】:

使用Enumerable 模块的select 很容易过滤(已包含在ActiveRecord 集合中)

在控制器中:

@user = User.near(current_user.location,50).where.not(id: current_user.id)
@user = @user.select{ |u| !current_user.following?(u) }

但请注意,这会将@user 的类型从ActiveRecord 集合更改为简单数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多