0

如何在 Rails 中编写 where 子句来测试多个值?

这不起作用:

where("wostatus_id = ?", 231 or 230 or 8466 )

还需要这样的语法:

where("wostatus_id != ?", 231 and 230 and 8466 )

谢谢您的帮助!

4

2 回答 2

4

你可以这样做...

where("wostatus_id IN (?)", [231, 230, 8466])

或者

where("wostatus_id NOT IN (?)", [231, 230, 8466])
于 2013-04-30T17:11:41.050 回答
2

您可以只使用正常的哈希条件

Model.where(wostatus_id: [230, 231, 8466])

这将产生预期的“IN”查询。在 Rails 3 中,没有办法将其转换为“NOT IN”,因此您需要依靠该where("wostatus_id NOT IN (?)", [230, 231, 8466])方法。

在 Rails 4 中,您应该能够:

Model.where.not(wostatus_id: [230, 231, 8466])

另请参阅:如何使用 ActiveRecord/Rails 表达 NOT IN 查询?

于 2013-04-30T17:16:02.717 回答