ruby-on-rails - 在以下情况下如何模拟 NOT IN SQL 条件

标签 ruby-on-rails

我正在使用 Ruby on Rails 2.3.8,我想获取所有尚未添加到 listed_products 数组的 @products

例如,假设我有以下代码:

listed_products = ['1', '2', '3', '4', '5']

#Then, I would like to do something like SELECT * FROM products where id not in
#(listed_products), and save the result in @products

我知道上面的 SQL 语法行不通,但我只是想告诉你们我想要实现的目标。

有没有“rails way”可以做到这一点?

提前致谢!

最佳答案

是的,您可以执行以下操作(Rails 2.3.x):

listed_products = [1,2,3,4,5]
Product.find(:all, :conditions => ["id NOT IN (?)", listed_products])

或者在 Rails 3.0.x 中是这样的:

listed_products = [1,2,3,4,5]
Product.where("id NOT IN (?)", listed_products)

关于ruby-on-rails - 在以下情况下如何模拟 NOT IN SQL 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4936472/

相关文章:

javascript - 如何隐藏从 Rails View 传递到 javascript/coffee 的数据?

ruby-on-rails - rails 4 : wrong time in edit view with string field and TimeZone per request

ruby-on-rails - 如何验证为 Rails 应用程序中的所有路由定义了 Controller 操作?

ruby-on-rails - 更新生产服务器上的代码,但浏览器上没有变化

ruby-on-rails - 使用 HAML 的 Markdown 代码缩进

html - 带有属性的随机图像 css

ruby-on-rails - Rspec:在辅助测试中设置 cookie

ruby-on-rails - rails 在 session 中存储密码

ruby-on-rails - 基于更改的属性值查询 Rails 模型

ruby-on-rails - 有办法处理 `after_save` 和 `after_destroy` "equally"吗?