SQLite3クエリに入れる必要のある関数があります。
私は次の方法を持っています:
def levenshtein(a, b)
case
when a.empty? then b.length
when b.empty? then a.length
else [(a[0] == b[0] ? 0 : 1) + levenshtein(a[1..-1], b[1..-1]),
1 + levenshtein(a[1..-1], b),
1 + levenshtein(a, b[1..-1])].min
end
end
次のようなクエリを実行したいと思います。
@results = The_db.where('levenshtein("name", ?) < 3', '#{userinput}')
The_db
name列の値とユーザー入力の間の編集距離が。未満の場合にnameの値を見つけたいもの3
。問題は、クエリでRuby関数を使用する方法がわからないことです。これも可能ですか?