这是原始查询
where(countries.map{|c| "zones.countries LIKE '%#{c}%'"}.join(' OR '))
现在我会用?重写这个查询?像这样的运营商
where(countries.map{|c| "zones.countries LIKE ?", "%#{c}%"}.join(' OR '))
但它不起作用。有什么建议吗? THX
答案 0 :(得分:1)
where(countries.map { |c| "zones.countries LIKE ?" }.join(" OR "), *countries.map{ |c| "%#{c}%"})
您可以使用类似的内容替换上面where
的第一个参数,以避免出现一个循环
("zones.countries LIKE ? OR " * countries.size).gsub(/ OR $/, '')