Вот запись , которая описывает его.
В основном, вы используете SQL LIKE
выражение для сопоставления строк, которые содержат что-то.Использование where("topic like ?", "%bla%")
подойдет.
Однако наивное решение подвержено атакам из-за отсутствия дезинфекции.Если пользователь вводит собственный символ подстановки %
, он может получить данные, которые вы не хотите предоставлять!Пост выше предполагает, что вы вручную дезинфицируете такие пользовательские данные:
escaped_str = "bla".gsub ('%', '\%').gsub ('_', '\_')
Topic.where("topic like ?", "%" + escaped_str + "%")