【发布时间】:2011-12-09 09:20:32
【问题描述】:
我有一个包含 Article 对象的 Rails 3 应用程序。他们有一个标题属性。在添加新文章之前,人们应该搜索它是否已经存在具有标题的文章。
今天有人举报了一篇重复的文章。原来添加它的人首先搜索了它,但标题中的“o”上有一个变音符号。他们使用常规的“o”字符在没有变音符号的情况下进行搜索,但没有找到,然后添加了重复项。
我正在使用范围对 title 属性进行简单查找,如下所示:
scope :search, lambda { |term| where('title like ?', "%#{term}%") }
我想知道是否有一种简单的方法可以“忽略”变音符号,这样人们可以输入“o”,并且如果 o 有变音符号,仍然可以找到一篇文章,对于其他变音符号也是如此。
我考虑过创建一个 search_title 属性并在更新时自己填充它,将变音符号替换为它们的普通等价物,但这有其自身的问题,其中如果有人确实使用了变音符号怎么办。
我希望可能有一个简单的解决方案,但我并不抱太大希望。 :-)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 search diacritics