Rails 4-ActiveRecord支持使用WHERE的查询中的OR条件

Vee

在使用哈希或数组时,ActiveRecord是否支持在WHERE子句中使用OR条件?例如,如果我想检索名为Gary,John或Carlos的任何人的年龄,我该如何编写查询?

这是代码:

 params[:names] = ["Gary", "John", "Carlos"]
 @ages = People.select("age").where('name = ?', params[:names])

因为params [:names]可以包含任意数量的项,所以我宁愿避免使用固定数量的OR条件对查询进行硬编码。

我看过squeel gem,但这是最好的解决方案吗?

马克·鲍姆巴赫

您可以使用Rails的内置SQLIN子句支持而不是链接OR子句。以下应该工作:

@ages = People.select("age").where(name: params[:names])

这将生成一个查询,例如:

SELECT age FROM people WHERE name IN ("Gary", "John", "Carlos")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Rails 4 进行 ActiveRecord 查询

来自分类Dev

rails:rails的条件4

来自分类Dev

rails:rails的条件4

来自分类Dev

Rails 4 ActiveRecord多个查询

来自分类常见问题

Rails 4是否支持OR查询

来自分类Dev

如何在Rails 4中使用Join而不是子查询来编写此ActiveRecord查询

来自分类Dev

Rails 4中的ActiveRecord :: AssociationTypeMismatch

来自分类Dev

Rails 4在原始activerecord查询中获取列名

来自分类常见问题

禁用ActiveRecord for Rails 4

来自分类Dev

rails 4 ActiveRecord :: StatementInvalid

来自分类Dev

Rails 4 ActiveRecord :: AssociationTypeMismatch

来自分类Dev

Rails 4 ActiveRecord组

来自分类Dev

rails 4 ActiveRecord :: StatementInvalid

来自分类Dev

动态查询不同的值rails 4 activerecord

来自分类Dev

SQL查询Rails 4

来自分类Dev

关联条件Rails 4

来自分类Dev

关联条件Rails 4

来自分类Dev

ActiveRecord视图与表(在Rails 4中)

来自分类Dev

Rails 4 ActiveRecord搜索中的数据迭代

来自分类Dev

Rails 4 ActiveRecord搜索中的数据迭代

来自分类Dev

Rails 4中的ForbiddenAttributesError

来自分类Dev

Rails 4中的ForbiddenAttributesError

来自分类Dev

Rails 4多个ActiveRecord关联

来自分类Dev

Rails 4茧ActiveRecord :: AssociationTypeMismatch

来自分类Dev

Rails 4错误:ActiveRecord :: AssociationTypeMismatch

来自分类Dev

最终以SUM,WHERE,LIKE和GROUP BY的MySQL查询成为Rails 4 ActiveRecord搜索

来自分类Dev

如何在Rails 4中使用“或”链接条件条件?

来自分类Dev

在Rails 3中使用的ActiveRecord定制属性在Rails 4中不起作用

来自分类Dev

有条件地链接Rails ActiveRecord查询中的where子句