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