2017-06-15 103 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'作爲替代品。這解決了我的測試套件。任何人都知道更好的做法? –

相關問題