ruby-on-rails 如何使用ActiveRecord排除一个值?

h22fl7wq  于 12个月前  发布在  Ruby
关注(0)|答案(2)|浏览(121)

给出:

Group (id)
GroupMember (id, group_id)

字符串
目前我可以做到:

@group.group_members


返回所有组的成员。我想返回除了current_user之外的所有group_member。有没有办法像这样做

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


谢谢

j0pj023g

j0pj023g1#

你们关系很好

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

字符串

t2a7ltrp

t2a7ltrp2#

今天,你可以使用.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-excluding

@group.group_members.excluding(current_user)

相关问题