使用find方法查找NOT匹配

时间:2010-01-25 05:55:50

标签: ruby-on-rails ruby ruby-on-rails-plugins

我正在尝试通过group_id查找用户。我的方法看起来像这样:

User.find(:all, :conditions => {:group_id => '90a39597a1aa3ec65fccf29ae05d9b6aefbfea6b', :id => !current_user.id})

:id条件没有意义,因为我不知道这部分的语法。我如何通过group_id和:id找到与current_user不匹配的用户。

希望这是有道理的。

2 个答案:

答案 0 :(得分:5)

使用conditions选项的数组/字符串变体:

User.all(:conditions => ["group_id = ? and id != ?", "90a39597a1aa3ec65fccf29ae05d9b6aefbfea6b", current_user.id])

答案 1 :(得分:1)

在我看来,最简单的方法是使用group_id获取所有用户,然后删除当前用户。

users = User.find_all_by_group_id('...')
users.delete(current_user)

你可以通过SQL做到这一点,但这对我来说似乎更清晰。