Как санировать sql фрагмент в направляющих

Я должен санировать часть запроса SQL. Я могу сделать что-то вроде этого:

class << ActiveRecord::Base
  public :sanitize_sql
end

str = ActiveRecord::Base.sanitize_sql(["AND column1 = ?", "two's"], '')

Но это не безопасно, потому что я выставляю защищенный метод. Что лучший путь состоит в том, чтобы сделать это?

36
задан dimus 9 June 2010 в 19:07
поделиться

1 ответ

Вы можете обойти защищенный метод, косвенно вызвав:

str = ActiveRecord::Base.__send__(:sanitize_sql, ["AND column1 = ?", "two's"], '')

... что, по крайней мере, избавит вас от необходимости переделывать этот метод как общедоступный .

(Я немного подозреваю, что вам действительно нужно это сделать, но приведенное выше будет работать.)

5
ответ дан 27 November 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: