如何在不相等的条件下在数据库中查找记录?我现在有这个,但是有花哨的方式做到这一点吗?

GroupUser.where('user_id != ?',me)

最佳答案

在Rails 4.x中(请参阅http://edgeguides.rubyonrails.org/active_record_querying.html#not-conditions)

GroupUser.where.not(user_id: me)

在Rails 3.x中
GroupUser.where(GroupUser.arel_table[:user_id].not_eq(me))

为了缩短长度,您可以将GroupUser.arel_table存储在变量中,或者如果在模型GroupUser本身内部使用,例如在scope中,则可以使用arel_table[:user_id]而不是GroupUser.arel_table[:user_id]
Rails 4.0语法归功于@jbearden's answer

08-15 18:44