acts_as_ferret

気絶した粗大ごみ

acts_as_ferretでの全文検索において「非日本語で検索すると、全件にヒットしてしまう」というバグに悩んでいたが、原因がわかった。

t = @use_surface ? @n.surface : features[6]

を非日本語に対して実行すると、tに'*'が入ってしまうので、Ferretはそれをワイルドカードと認識していた、と。

t = @use_surface ? @n.surface : features[6]
t = @n.surface.downcase if t == '*'

でとりあえず回避。