我有一个Value
模型,它具有name
属性。
可以是什么名称的几个例子:
value_1-example
Value2/Exampl-e
我希望能够通过搜索已清理的字符串找到具有这些名称的值:
value1example
=>返回名称为value_1-example
value2example
=>返回名称为Value2/Exampl-e
基本上,它在不考虑/
,_
,-
等特殊字符并使查询不区分大小写的情况下查询数据库。
有没有办法用ActiveRecord做到这一点?
答案 0 :(得分:3)
您可以使用replace
Model.where("replace(replace(LOWER(name), '_', ''), '-', '') like ?", '%value1example%')
唯一的问题是你必须为每个角色使用替换
如果您使用的是Postgres,则可以使用regex_replace