activerecord发现所有未包含在数组中

时间:2010-12-01 17:37:03

标签: ruby-on-rails activerecord ruby-on-rails-3

我有一组代码的另一部分的团队名称,我想找到不在该数组中的所有团队。我尝试了以下内容,但它不起作用。

@team_exclude_list = ['Team 1', 'Team 2', 'Team 3']
@teams = Team.where("name != ?", @team_exclude_list)

这是在Rails 3中,谷歌并没有给予我太多的爱。

2 个答案:

答案 0 :(得分:62)

Rails 4解决方案:

@team_exclude_list = ['Team 1', 'Team 2', 'Team 3']
@teams = Team.where.not(name: @team_exclude_list)

此外,为了加快查询速度,您可以:

  • 在名称上创建索引

OR

  • 更改查询以使用默认编制索引的ID

答案 1 :(得分:58)

我从来没有用字符串字段做过这个,但也许这会起作用:

@teams = Team.where("name NOT IN (?)", @team_exclude_list)