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
调用的参数。
如何在modelswhere
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早安兄弟^_^