本文介绍了在Rails的模型不区分大小写的搜索的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的产品模型中包含的某些项目
My product model contains some items
Product.first
=> #<Product id: 10, name: "Blue jeans" >
我现在进口的一些产品参数从另一个数据集中,但也有名字的拼写不一致。例如,在其他数据集,蓝色牛仔裤
可以拼蓝色牛仔裤
。
我想 Product.find_or_create_by_name(蓝色牛仔裤)
,但是这将创建一个新的产品,几乎等同于第一。什么是我的选择,如果我想找到并比较小写的名字。
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.
性能问题不是非常重要的位置:只有100-200的产品,我想作为导入数据的迁移运行此
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.
任何想法?
推荐答案
你可能要在这里更加详细的
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)
这篇关于在Rails的模型不区分大小写的搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!