ActiveRecord に sanitize_sql というメソッドがあるみたいなのですが
ActiveRecord::Sanitization::sanitize_sql
とかいても
ActiveRecord::Sanitization::ClassMethods::sanitize_sql
NoMethodError (undefined method
sanitize_sql' for ActiveRecord::Sanitization:Module):`
となります
このメソッドはどうすれば使えるのでしょうか
追記
大量データのJSON出力が必要で、
メモリ節約のためにあえてモデルを作らずに生SQLを実行したいです
activeredord のモデルの中にかいてみたんですがやはりうまくいきません
class user < ActiveRecord::Base def self.sanitize_sql(cond) # sanitize_sql(cond) # ActiveRecord::Sanitization::sanitize_sql(cond) # ActiveRecord::Sanitization::ClassMethods::sanitize_sql(cond) end end
term = params.require(:term) query = <<-EOS SELECT DISTINCT user_id FROM users WHERE name LIKE '%#{User.sanitize_sql(term)}%' EOS render json: ActiveRecord::Base.connection.execute(query).map(&:first)
みたいな感じで入力をそのままSQLに渡しているのでエスケープ処理がしたいのですが
他にきれいに掛ける方法はありますでしょうか
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。