繁体   English   中英

自定义Ransacker忽略数据库中的破折号

[英]Custom Ransacker to ignore dash in database

我正在尝试自定义Ransack,以允许搜索文本字段,并且可能让Rasack忽略dash

例:

如果我在搜索框中输入以下内容:

123456

Ransack查询将在数据库中找不到此记录:

123-456

现在,如果我不输入破折号,将找不到记录。 我了解为什么它试图匹配数据库记录,但显然找不到它,因为破折号是查找该记录所必需的。

是否可以自定义Ransack,以便搜索仍能找到参数中没有破折号的记录?

看起来创建自定义Ransacker可以解决问题。

ransacker :number do
  Arel.sql("translate(number, '-', '')")
end

使用Ransack进行搜索时,这将从数据库的数据表示形式中删除破折号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM