我能够在 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 的经验。