2017-06-15 49 views
3

我刚刚升级到Rails 5.1.1并收到此错误。未定义的方法#sanitize ActiveRecord :: Base

NoMethodError (undefined method `sanitize' for ActiveRecord::Base:Class): 

堆栈追溯这段代码

like_search_term = ActiveRecord::Base::sanitize("%#{escaped_search_term}%") 

先后这种方法被删除,或在新的Rails改变升级?

+0

看来,它不模型工作的公共API,但鉴于没有工作,我使用Rails试了一下4.2 – simo

回答

6

是的的确,它似乎是removed

Sanitize从来不是框架的公共API的一部分。因为我们不再需要它在框架中,我们删除了。推荐的方式来净化原SQL在执行语句的使用是该http://api.rubyonrails.org/classes/ActiveRecord/Sanitization/ClassMethods.html

+3

感谢信息。我最终以'ActiveRecord :: Base.connection.quote'作为替代品。这解决了我的测试套件。任何人都知道更好的做法? –

相关问题