Используйте вычисленное значение postgres без столбца в качестве переменной Ruby
У меня есть веб-приложение Hanami, в котором одна функция заключается в сравнении строк в базе данных со строкой, предоставленной пользователем. Для этого я использую расширение postgres pg_trgm. Переведенное условие запроса в Ruby выглядит так:
.where {similarity(:content, source_text_for_lookup) > sim_score_limit}
Проблема, которую мне нужно решить, - вернуть вычисленную оценку сходства в Ruby и представить ее пользователю. Однако оценка подобия не является атрибутом, поскольку она актуальна только или должна существовать только тогда, когда функция вызывается в PG для сравнения двух строк.
Есть ли способ сделать это?
С уважением, Себастьян
1 ответ
По крайней мере, в ПЗУ вы можете добавлять вызовы функций, что-то вроде
.select_append { float::similarity(:content, source_text_for_lookup).as(:similarity) }
Полученные структуры должны иметь similarity
атрибут с нужным вам значением.