ruby-on-rails - 使 ActiveRecord 清理方法在类中可用

标签 ruby-on-rails ruby ruby-on-rails-4 activerecord

我正在构建一个过滤器类来构造特殊的 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/

相关文章:

mysql - 如何根据另一个表验证字段的唯一性

ruby-on-rails - Ruby on Rails 标签与 HTML 标签

ruby-on-rails - oauth2 omniauth.rb 中的可选范围

javascript - 如何使用javascript附加rails复选框标签?

javascript - 更新时缺少模板 Rails

ruby - 分配给数组并替换出现的 nil 值

ruby-on-rails - ruby 中嵌套数组中哈希键的总和

ruby-on-rails - 验证失败,字段必须与 allow_nil 一起存在

ruby-on-rails - Rails link_to params .id 而不是/id

ruby-on-rails - Rails 4 - 使用omniauth-google-oauth2的Google一次性代码流,不断收到 "Invalid code"