回答:
否定された文字グループにスペースを追加します。
@search_query = @search_query.gsub(/[^0-9a-z ]/i, '')
@search_query.gsub!(/[^0-9a-z ]/i, '')
\s
はない\\s
この場合、入力を永続的にクリーンアップするために、bangメソッド(gsubではなくgsub!)を使用します。
#permanently filter all non-alphanumeric characters, except _
@search_query.gsub!(/\W/,'')
これにより、@ seach_queryがクリーンアップされずにコードの他の場所で使用される状況が回避されます。
包含アプローチを使用したでしょう。数字以外をすべて除外するのではなく、数字のみを含めます。例えば
@search_query.scan(/[\da-z\s]/i).join