Как санировать сырой SQL в Rails 4
В Rails 3 я мог бы использоватьsanitize_sql_array
дезинфицировать необработанный SQL в те моменты, когда требуется необработанный SQL-запрос. Но, похоже, это было удалено в Rails 4 или не так сильно удалено, но перенесено в ActiveRecord :: Sanitization. Тем не менее, я не могу понять, как позвонитьsanitize_sql_array
Итак, что же является лучшим способом дезинфицировать сырой SQL в Rails 4?
Я хочу уточнить, что я имею в виду полный необработанный SQL-запрос, не использующий модели Rail. Я знаю, что это не лучшая практика, это то, что я должен сделать для этого конкретного запроса, так как он не может быть представлен приятным интерфейсом RailR ActiveRecord (поверьте мне, я пробовал).
Вот пример вызова, который, очевидно, проще, чем выглядит мой запрос:
query = "SELECT * FROM users
LEFT OUTER JOIN posts ON users.id=posts.user_id
AND posts.topic_id = '#{topic.id}'"
# ^- Obviously bad and very vulnerable, this is what we're trying to fix
ActiveRecord::Base.connection.select_all(query)