1. ホーム
  2. ruby-on-rails

[解決済み】Railsのモデルで大文字・小文字を区別しない検索をしたい

2022-04-06 17:52:13

質問

私の商品モデルには、いくつかのアイテムが含まれています。

 Product.first
 => #<Product id: 10, name: "Blue jeans" >

現在、別のデータセットからいくつかの製品パラメータをインポートしていますが、名前のスペルに不一致があります。例えば、他のデータセットでは Blue jeans は、次のような綴りになります。 Blue Jeans .

をしたかったのです。 Product.find_or_create_by_name("Blue Jeans") しかし、これでは、最初の商品とほとんど同じ商品が新たに作成されてしまいます。小文字の名前を検索して比較したい場合、どのような選択肢がありますか。

パフォーマンスの問題は、ここではあまり重要ではありません。製品は100-200個しかなく、私はこれをデータをインポートするマイグレーションとして実行したい。

何かアイデアはありますか?

解決方法は?

ここでは、おそらくもっと饒舌になる必要があります。

name = "Blue Jeans"
model = Product.where('lower(name) = ?', name.downcase).first 
model ||= Product.create(:name => name)