Rails字符串注入添加了引号

时间:2012-10-03 22:28:24

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试将get请求中给出的一封信输入到尾部3中的Like语句中。到目前为止,我有以下代码:

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

问题是它是在创建错误的sql查询类型,在注入的字母周围添加引号。它为:letter =>创建以下sql; 'A':

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

而不是:

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

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