Для моего проекта ruby on rails у меня есть модель с именем message, которая имеет поле to. Я хочу реализовать поиск по шаблону, чтобы, например, %545
отображал все сообщения, заканчивающиеся на 545
, 545%
отображал все числа, начинающиеся с 545
, %545%
отображал все сообщения, включая 545
.
У меня есть запрос типа Message.where("to like ?", str)
, где str
- строка для сопоставления, например, %545, %545%, 545%
... и т.д..
Все работает, но меня беспокоит атака SQL-инъекцией. Поэтому я хочу сделать регулярное выражение для str
, чтобы оно пропускало только %
и числа. Поэтому я хочу, чтобы строки вроде %545, %545%, 545%
проходили, а не abc, %545a, a545%, %54a5%
проходили.
Я пробовал str.scan(/.*?(\d+%)/)
, но это не работает.
Спасибо.