在Rails中从数组构建搜索查询

时间:2017-04-18 14:08:58

标签: ruby-on-rails ruby-on-rails-5

我有一个模型Person和一个数据表PersonCode。现在在我的控制器中,我想搜索多个代码。什么是正确的方法呢?

我尝试在Person

上定义一个类方法
def self.code_filter(codes)
    joins(:PersonCode)
    codes.each do |code|
        where("rank > 1 AND person_code.code LIKE '%" + code +"%'")
end

但是,当我在控制器中调用此类方法时,请说[' Z'' Q']

Person
    .code_filter(my_array)
    .another_query_method(some_value)

我收到以下错误消息:"未定义的方法`another_query_method' for [" Z"," Q"]:Array"

我知道为什么这不起作用但是如何使用这些SQL语句进行正确连接的查询?

1 个答案:

答案 0 :(得分:0)

由于each方法。

此方法返回原始Array对象。

[1,2,3].each {|i| p i + 1}

返回[1,2,3]。

使用Array#map,您将获得一系列关系