Я должен санировать часть запроса SQL. Я могу сделать что-то вроде этого:
class << ActiveRecord::Base
public :sanitize_sql
end
str = ActiveRecord::Base.sanitize_sql(["AND column1 = ?", "two's"], '')
Но это не безопасно, потому что я выставляю защищенный метод. Что лучший путь состоит в том, чтобы сделать это?
Вы можете обойти защищенный
метод, косвенно вызвав:
str = ActiveRecord::Base.__send__(:sanitize_sql, ["AND column1 = ?", "two's"], '')
... что, по крайней мере, избавит вас от необходимости переделывать этот метод как общедоступный
.
(Я немного подозреваю, что вам действительно нужно это сделать, но приведенное выше будет работать.)