ruby-on-rails - 如何使用 ActiveRecord/Rails 表达 NOT IN 查询?

标签 ruby-on-rails rails-activerecord

我希望有一个不涉及 find_by_sql 的简单解决方案,如果没有,那么我想这必须起作用。

我找到了this article其中引用了这个:

Topic.find(:all, :conditions => { :forum_id => @forums.map(&:id) })

相同
SELECT * FROM topics WHERE forum_id IN (<@forum ids>)

我想知道是否有办法NOT IN这样做,例如:

SELECT * FROM topics WHERE forum_id NOT IN (<@forum ids>)

最佳答案

Rails 4+:

Article.where.not(title: ['Rails 3', 'Rails 5']) 

rails 3:

Topic.where('id NOT IN (?)', Array.wrap(actions))

其中 actions 是一个数组,其中:[1,2,3,4,5]

关于ruby-on-rails - 如何使用 ActiveRecord/Rails 表达 NOT IN 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307411/

相关文章:

ruby-on-rails - 编写用于在 Heroku 上部署的 Multi-Tenancy Rails 3 应用程序

mysql - 由于许多连接错误,主机 'X' 被阻止

ruby-on-rails - Rails 创建新记录而不是更新

mysql - 在 Rails 架构/事件记录中使用 "BIGINT UNSIGNED"

ruby-on-rails - 在 Rails 中设置 create_join_table 迁移选项

ruby-on-rails - sqlite 的 Rails 5 uuid 问题

ruby-on-rails - 带有 ElasticSearch 的 Searchkick 返回 "Faraday::ConnectionFailed: execution expired"

ruby-on-rails - 为 Rails 中的表格动态创建模型

ruby-on-rails - 计算 ActiveRecord nil 属性

ruby-on-rails - 如何按日期计数获取此 postgres 组包括带 0 的天数