Я пытаюсь сделать как запрос типа такRails 4 LIKE запроса - ActiveRecord добавляет кавычки
def self.search(search, page = 1)
paginate :per_page => 5, :page => page,
:conditions => ["name LIKE '%?%' OR postal_code like '%?%'", search, search], order => 'name'
end
Но когда он запускается что-то добавляет кавычки, которые вызывают заявление SQL, чтобы выйти, как так
SELECT COUNT(*)
FROM "schools"
WHERE (name LIKE '%'havard'%' OR postal_code like '%'havard'%')):
Таким образом, вы можете видеть мою проблему. Я использую Rails 4 и Postgres 9, оба из которых я никогда не использовал, поэтому не уверен, что это и вещь activerecord или, возможно, вещь postgres.
Как я могу установить это, поэтому у меня есть '%my_search%'
в конце запроса?
не это уязвимы для SQL инъекций? Я имею в виду, что эти «поисковые» строки дезинфицируются? – jdscosta91
@ jdscosta91 '?' В том, где позаботится о дезинфекции – house9
@ home9 экземпляры '%' и '_' внутри' search' не будут дезинфицированы под этим подходом. –