В Rails 3 я мог бы использовать sanitize_sql_array
для дезинфекции необработанного SQL для тех случайных моментов, когда необходим необработанный SQL-запрос. Но это, похоже, было удалено в Rails 4 или не так сильно удалено, но переместилось в ActiveRecord:: Sanitization. Тем не менее, я не могу понять, как называть sanitize_sql_array
сейчас, так что лучший способ дезинформировать raw SQL в Rails 4?
Я хочу пояснить, что я говорю о полном сыром SQL-запросе здесь, а не о моделях Rail. Я знаю, что это не лучшая практика, это именно то, что я должен сделать для этого конкретного запроса, поскольку он не может быть представлен интерфейсом Active Record с помощью Rails (верьте мне, я пробовал).
Вот примерный вызов, который, очевидно, проще, чем выглядит мой запрос:
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)