【发布时间】:2012-06-10 14:38:08
【问题描述】:
我能够在 Rails 2.3 中进行 LIKE 查询的唯一方法是:
access_points.all(:conditions => "mac_address LIKE '%#{@q}%'")
官方文档说这种方式是不安全的,因为会受到 SQL 注入的影响:
将您自己的条件构建为纯字符串可能会使您容易受到 SQL 注入攻击。例如,Client.first(:conditions => "name LIKE '%#{params[:name]}%'") 是不安全的。有关使用数组处理条件的首选方法,请参阅下一节。 http://guides.rubyonrails.org/v2.3.8/active_record_querying.html
但不幸的是,它没有解释如何正确地进行 LIKE 查询,而且我无法在 google 上找到它,因为 LIKE 是一个通用的关键字。
有什么提示吗?我是 Rails 新手,但我有使用 Symfony 和 Django 的经验。
【问题讨论】:
-
使用
?语法并将条件放入数组中。搜索“rails 3 like query”会返回几个匹配结果,包括 this SO question,它就是这样做的。
标签: ruby-on-rails