Safe ActiveRecord like query

后端 未结 5 514
别那么骄傲
别那么骄傲 2020-11-30 04:27

I\'m trying to write LIKE query.

I read that pure string quires aren\'t safe, however I couldn\'t find any documentation that explain how to write safe LIKE Hash Que

5条回答
  •  迷失自我
    2020-11-30 05:05

    To ensure that your query string gets properly sanitized, use the array or the hash query syntax to describe your conditions:

    Foo.where("bar LIKE ?", "%#{query}%")
    

    or:

    Foo.where("bar LIKE :query", query: "%#{query}%")
    

    If it is possible that the query might include the % character then you need to sanitize query with sanitize_sql_like first:

    Foo.where("bar LIKE ?", "%#{sanitize_sql_like(query)}%")
    Foo.where("bar LIKE :query", query: "%#{sanitize_sql_like(query)}%")
    

提交回复
热议问题