У меня есть прицел на модели, который выглядит так:
scope :indexed_by_array, lambda { |ids|
order = sanitize_sql_array(
["position((',' || id::text || ',') in ?)", ids.join(',') + ',']
)
where(id: ids).order(order)
}
После обновления до Rails 5.2 он получает множество предупреждений об устаревании, например:
Опасный метод запроса (метод, аргументы которого используются как необработанный SQL), вызываемый с аргументом (аргументами) без атрибута: "position((',' || id::text || ',') in ',')". Аргументы без атрибутов будут запрещены в Rails 6.0. Этот метод не следует вызывать со значениями, предоставленными пользователем, такими как параметры запроса или атрибуты модели. Известные безопасные значения можно передать, обернув их в Arel.sql().
Как мне изменить эту область, чтобы играть в мяч с Rails 5.2?
...order(Arel.sql(order))
. - person mu is too short   schedule 04.05.2018