在Rails的模型不区分大小写的搜索

在Rails的模型不区分大小写的搜索

本文介绍了在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的模型不区分大小写的搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-24 06:41