相关疑难解决方法(0)

如何用ActiveRecord/Rails表达NOT IN查询?

只是为了更新这个,因为似乎有很多人来到这里,如果你使用Rails 4,请查看TrungLê`和VinniVidiVicci的答案.

Topic.where.not(forum_id:@forums.map(&:id))

Topic.where(published:true).where.not(forum_id:@forums.map(&:id))
Run Code Online (Sandbox Code Playgroud)

我希望有一个简单的解决方案不涉及find_by_sql,如果不是,那么我想这将必须工作.

我发现这篇文章引用了这个:

Topic.find(:all, :conditions => { :forum_id => @forums.map(&:id) })
Run Code Online (Sandbox Code Playgroud)

这是一样的

SELECT * FROM topics WHERE forum_id IN (<@forum ids>)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法NOT IN解决这个问题,例如:

SELECT * FROM topics WHERE forum_id NOT IN (<@forum ids>)
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-activerecord

198
推荐指数
6
解决办法
13万
查看次数

标签 统计

rails-activerecord ×1

ruby-on-rails ×1