Mongomapper正则表达式搜索查询

时间:2013-09-10 06:58:11

标签: ruby-on-rails-3 mongodb ruby-on-rails-3.2 mongomapper

在我的rails应用程序中,我正在搜索公司名称,我正在使用mongodb作为后端。 我查找公司的查询是

@companies = Company.where(name: /#{params[:search]}/i).all

在我的数据库中,我的公司名称为“ABC& D Services Inc.(亚特兰大项目)”,当我试图通过提供字符串“ABC& D Services Inc.”来搜索该公司时。它不会返回任何结果。此外,如果我尝试使用字符串“ABC& D Services Inc.(”它给我错误结束模式与不匹配的括号

任何人都知道如何用reg-ex解决这类问题。最终用户可以使用任何输入执行搜索,以便有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

Regexp.escape转义特殊字符:

@companies = Company.where(name: /#{Regexp.escape(#{params[:search]})}/i).all

答案 1 :(得分:0)

@companies = Company.where(name: /#{Regexp.escape(params[:search])}/i)