Я использую find_by_sql
для выполнения SQL-запроса. Я хотел бы иметь возможность использовать Soundex и Levenshtein, но для использования Levenshtein мне нужно включить функцию в файл.Как включить пользовательскую функцию SQL
Это мой код до сих пор:
info = params[:email].split('@')
name = info[0]
domain = info[1]
levenshtein = File.open("./lib/assets/mysql-function-levenshtein.sql")
results = Domain.find_by_sql(
"" + levenshtein + "
SELECT *
FROM domains
WHERE domain = '" + domain + "'"
)
Я понятия не имею, если просто включить его в запросе даже действует.
Какая наилучшая реализация?
Кстати файл я пытаюсь включить это: https://github.com/vyper/levenshtein-sql
Пытался бегу, что? Я бы, вероятно, использовал 'File.read' вместо' File.open' или обернул вызов 'find_by_sql' в блок' File.open do ... end'. В противном случае я не слишком люблю использовать пользовательские SQL-запросы. Не могли бы вы просто определить функцию в базе данных и сделать «где» (levensthtein («leonardo», «leonardu») »)? Нет никакой реальной необходимости определять функцию каждый раз, когда вы запускаете запрос, не так ли? – Frost
Да, вы правы, 'File.read' - тот, который нужно использовать. –
Как я могу определить функцию в базе данных? –