组成具有字符串条件数组的ActiverEcord查询



我有一系列字符串,可以用作模型中where调用的参数。我如何附加模型中的每个字符串where调用并返回Active记录关系的其他limit调用

我尝试了以下内容,但它仅将第一个项目添加到Where子句

array = ['active = true', 'expired = false', 'created_at > 2017-04-18 10:36:28']
array.reduce { | item | Post.where(item) }

返回

Posts.where('active = true')

,而Am乞求

Posts.where('active = true').where('expired = false').where('created_at > 2017-04-18 10:36:28')

谢谢。

只有 join数组的元素进入一个字符串:

array.join(' AND ')
#=> "active = true AND expired = false AND created_at > 2017-04-18 10:36:28"

并使用它:

Post.where(array.join(' AND '))

P.S。

created_at > 2017-04-18 10:36:28可能会给您带来语法错误,但这不在问题的范围中。

最新更新