Ruby on rails 无论开发人员使用哪台机器,都很难证明在开发过程中不使用它是合理的。是的,设置它需要一点开销,但一旦设置完成,它就变得非常透明了。@matt您能谈谈为什么SQLite不适合生产吗? def levenshtein(a, b) case when
Ruby on rails 无论开发人员使用哪台机器,都很难证明在开发过程中不使用它是合理的。是的,设置它需要一点开销,但一旦设置完成,它就变得非常透明了。@matt您能谈谈为什么SQLite不适合生产吗? def levenshtein(a, b) case when ,ruby-on-rails,ruby,methods,sqlite,Ruby On Rails,Ruby,Methods,Sqlite,无论开发人员使用哪台机器,都很难证明在开发过程中不使用它是合理的。是的,设置它需要一点开销,但一旦设置完成,它就变得非常透明了。@matt您能谈谈为什么SQLite不适合生产吗? 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]),
无论开发人员使用哪台机器,都很难证明在开发过程中不使用它是合理的。是的,设置它需要一点开销,但一旦设置完成,它就变得非常透明了。@matt您能谈谈为什么SQLite不适合生产吗?
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}')
db.create_function "levenshtein", 2 do |func, a, b|
func.result = levenshtein(a, b)
end
# first set up some data
db.execute 'create table names (name varchar(30))'
%w{Sam Ian Matt John Albert}.each do |n|
db.execute 'insert into names values (?)', n
end
#Then use the custom function
puts db.execute('select * from names where levenshtein(name, ?) < 3', 'Jan')