如何使用activerecord排除某个值?

问题描述 投票:0回答:2

鉴于:

Group (id)
GroupMember (id, group_id)

目前我能做的:

@group.group_members

返回所有组的成员。我想返回除 current_user 之外的所有 group_member。有没有办法做类似的事情

@group.group_members.where(:id not equal to current_user.id) ?

谢谢

ruby-on-rails ruby-on-rails-3
2个回答
3
投票

你很接近:

@group.group_members.where('id != ?', current_user.id)

0
投票

今天,您将使用

.where.not
(也可以接受数组或关系)...

https://api.rubyonrails.org/classes/ActiveRecord/QueryMethods/WhereChain.html#method-i-not

@group.group_members.where.not(id: current_user)

.excluding
(如果您已经拥有该模型)。

https://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-Exclusion

@group.group_members.excluding(current_user)
© www.soinside.com 2019 - 2024. All rights reserved.