简体   繁体   English

Rails字符串注入添加引号

[英]Rails string injection adds quotations marks

I am trying to enter a letter given by the get request into a Like statment in tails 3. So far I have the following code: 我正在尝试将由get请求给出的字母输入到尾部3的Like语句中。到目前为止,我具有以下代码:

@entries = Entry.where("key LIKE '?%'", params[:letter]).order(:key)

Problem is it is creating the wrong kind of sql query adding quotation marks around the injected letter. 问题是它正在创建错误类型的sql查询,并在注入的字母周围添加了引号。 it creates the following sql for :letter => 'a': 它为:letter =>'a'创建以下sql:

SELECT "entries".* FROM "entries" WHERE (key LIKE ''a'%') ORDER BY key

Instead of: 代替:

SELECT "entries".* FROM "entries" WHERE (key LIKE 'a%') ORDER BY key

How can I fix this? 我怎样才能解决这个问题?

@entries = Entry.where("key LIKE ?", "#{params[:letter]}%").order(:key)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM