Rails,我如何在它们之间使用“OR”运算符链接范围?

Posted

技术标签:

【中文标题】Rails,我如何在它们之间使用“OR”运算符链接范围?【英文标题】:Rails, how do I chain scopes with an “OR” operator between them? 【发布时间】:2014-12-16 20:16:56 【问题描述】:

这是一个源自“Rails, how do I chain scopes with an "and" operator between them?”的问题。

在接受的答案中,代码示例生成的 SQL 类似于:

"where 'age' similar to '%(foo|bar)%' AND 'name' similar to '%(foo|bar)%' AND

...等等。

如果我想用OR 而不是AND 链接范围,我将如何实现?

【问题讨论】:

复制:***.com/questions/3639656/activerecord-or-query 【参考方案1】:

check the any_of gem.

让您可以执行以下操作:

banned_users      = User.where(banned: true)
unconfirmed_users = User.where("confirmed_at IS NULL")
inactive_users    = User.where.any_of(banned_users, unconfirmed_users)

【讨论】:

以上是关于Rails,我如何在它们之间使用“OR”运算符链接范围?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 5:ActiveRecord OR 查询

如何使用 OR 而不是 AND 链接范围查询?

在引导程序模式之间切换

函数调用之间的 OR 运算符

Rails - 传递给 #or 的关系必须在结构上兼容。不兼容的值:[:joins]

如何在 Python 中处理它们之间包含空格的链接