我正在构建一个过滤器类来构造特殊的 SQL 查询。它是一个服务类,而不是模型,并且没有基础表。
我想在将输入嵌入到 sql 中时对其进行清理,以防止注入(inject)。
这些方法正是我想要的: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 继承即可使用方法吗?
最佳答案
running sanitize_sql_array outside of a model
ActiveRecord::Base.send(:sanitize_sql_array, ['test < ?', 123])
关于ruby-on-rails - 使 ActiveRecord 清理方法在类中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38461390/