0

私の Rails アプリケーションでは、会社名を検索しており、バックエンドに mongodb を使用しています。会社を見つけるための私のクエリは

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

私のデータベースには、「ABC&D Services Inc. (Atlanta Project)」という名前の会社があり、「ABC&D Services Inc.」という文字列を指定してこの会社を検索しようとすると、結果は返されません。また、文字列「ABC&D Services Inc.(」で検索しようとすると、括弧が一致しないエラー終了パターンが表示されます

この種の問題を正規表現で解決する方法は誰でも知っています。エンドユーザーは任意の入力で検索を実行できますが、これを処理する方法はありますか?

4

2 に答える 2

3

Regexp.escapeは特殊文字をエスケープします:

@companies = Company.where(name: /#{Regexp.escape(#{params[:search]})}/i).all
于 2013-09-10T10:26:12.470 に答える
0
@companies = Company.where(name: /#{Regexp.escape(params[:search])}/i)
于 2015-02-27T18:22:00.283 に答える