新しいレストランのリストがあり、電話番号を使用してレストランのデータベースと照合したいと思います。電話番号の問題は、データベース内のフォーマットが異なることです(つまり123-345-6789
、または(123)-456 8988
)。
これまでのところ、電話のインデックスを作成して、すばやく検索できるようにしています。また、新しいレストランの電話番号を削除して、数値(0〜9)のみが含まれるようにしました。
ここで、数値を厳密に比較するために、比較する直前にデータベースの数値を削除したいと思います。
#strip the phone of non-numeric values and spaces
formatted_phone = SunspotHelper.sanitize_term(pr.phone).gsub(/\s+/, "")
Restaurant.where(contact_phone: formatted_phone).each do |r|
#irrelevant code here
end
上記のコードの問題は、(データベースからの)contact_phoneがストリップされていない形式になることです。これまでの私の調査では、のようなものを使用する必要があると私は信じていますがREGEXP_LIKE
、Railsでこれを実装する方法がよくわかりません。データベースを更新したくない-DBに元のフォーマットを保持したまま、比較のために数値を削除したいだけです。
contact_phone
と比較する前に、データベースから非数値の電話番号を削除するにはどうすればよいformatted_phone
ですか?