2017-06-15 12 views
3

Rails 5.1.1にアップグレードしたばかりで、このエラーが表示されています。未定義のメソッド#sanitize for ActiveRecord :: Base

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

スタックが戻ってこのコード

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

にトレースし、この方法は、アップグレードする新しいレールに削除または変更されていますか?

+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'と一緒に行きました。それは私のテストスイートを修正しました。誰でも良い習慣を知っていますか? –

関連する問題