Ruby on rails 编写具有字符串条件数组的ActiveRecord查询

Ruby on rails 编写具有字符串条件数组的ActiveRecord查询,ruby-on-rails,arrays,ruby,loops,activerecord,Ruby On Rails,Arrays,Ruby,Loops,Activerecord,我有一个字符串数组,用作模型中where调用的参数。 如何在modelswherecall中追加每个字符串,并为额外的limit调用返回活动记录关系 我尝试了以下方法,但它只将第一项添加到where子句中 array = ['active = true', 'expired = false', 'created_at > 2017-04-18 10:36:28'] array.reduce { | item | Post.where(item) } 返回 Posts.where('act

我有一个字符串数组,用作模型中
where
调用的参数。 如何在models
where
call中追加每个字符串,并为额外的
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')
我在乞求

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

谢谢。

只需
数组的元素合并成一个字符串:

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

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


created\u at>2017-04-18 10:36:28
可能会给您带来语法错误,但这超出了问题的范围。

您的意思是
,而不是
,否则您需要一个hash早安兄弟^_^