【发布时间】:2011-06-19 22:14:24
【问题描述】:
我正在尝试构建一个微型引擎,该引擎允许通过用户输入动态构建搜索查询。我在参数中得到了列名和搜索字符串,我们假设:
params = {:filter_column => "column_name", :filter_string => "search term"}
我知道,如果我只是在我的模型上调用标准类型的位置,它会是:
ModelName.where("column_name LIKE ?", params[:filter_string])
我遇到的问题是我正在尝试编译我的过滤器列表,然后一次将它们应用于搜索。我可以在调用 where 方法之前建立 where 字符串吗?
我试过了:
ModelName.where("? LIKE ? ", column_name, search_term)
运气不佳。有任何提示、提示或指示吗?
谢谢!
【问题讨论】:
标签: ruby-on-rails activerecord sql-injection