我正在构建一个构造特殊sql查询的过滤器类。它是一个服务类,而不是模型,没有底层表。
我希望在将其嵌入到sql中时对输入进行清理,以防止注入。
这些方法完全符合我的要求:http://api.rubyonrails.org/classes/ActiveRecord/Sanitization/ClassMethods.html
但是,使用include ActiveRecord::Sanitization
不起作用。当我致电sanitize_sql_array
时,它会抱怨:
Undefined local variable or method `connection` Applications::ApplicationFilter:Class
这似乎是某种依赖性问题。当我从AR继承我的过滤器类时,使用Applications::ApplicationFilter < ActiveRecord::Base
,那么它可以工作。但是我不想这样做...请...请拜托
有没有人知道如何使这个sanitize_sql_array
方法无需继承整个大块的活跃记录rhinoserous?
答案 0 :(得分:2)
running sanitize_sql_array outside of a model
ActiveRecord::Base.send(:sanitize_sql_array, ['test < ?', 123])