Case-insensitive search in Rails model
activerecord, case-insensitive, ruby-on-rails
Solution
You'll probably have to be more verbose here
name = "Blue Jeans"
model = Product.where('lower(name) = ?', name.downcase).first
model ||= Product.create(:name => name)
Problem
My product model contains some items ``` Product.first => #<Product id: 10, name: "Blue jeans" > ``` I'm now importing some product parameters from another dataset, but there are inconsistencies in the spelling of the names. For instance, in the other dataset, `Blue jeans` could be spelled `Blue Jeans`. I wanted to `Product.find_or_create_by_name("Blue Jeans")`, but this will create a new product, almost identical to the first. What are my options if I want to find and compare the lowercased name. Performance issues is not really important here: There are only 100-200 products, and I want to run this as a migration that imports the data. Any ideas?