Я пытаюсь обновить Rails 5, я получаю следующее предупреждение об отказе:
ПРЕДУПРЕЖДЕНИЕ О ДЕПРЕКАЦИИ: метод to_hash устарел и будет удален в Rails 5.1, поскольку
ActionController::Parameters
больше не наследуется от хеша. Использование этого устаревшего поведения создает потенциальные проблемы безопасности. Если вы продолжаете использовать этот метод, вы можете создать уязвимость в вашем приложении, которая может быть использована. Вместо этого рассмотрите использование одного из этих документированных методов, которые не устарели: http://api.rubyonrails.org/v5.0.0/classes/ActionController/Parameters.html (вызывается из column_header в/Data/Projects/portal/trunk/приложение/хелперы/application_helper.rb: 114)
Строка, на которой отображается предупреждение, выглядит следующим образом:
link_to(name,
{
action: action_name,
params: params.merge({ order: key, page: nil })
},
{
title: "Sort by this field",
}) +
Как вы можете видеть, я не звоню to_hash
. Может быть, Rails. Может быть, какой-то другой камень. Я не могу сказать, потому что они не думали, что стоит потратить трассировку стека. (Pro tip - обычно стоит выделить трассировку стека!)
Так или иначе, я пошел по ссылке, планируя найти замену, и метод merge
не считается устаревшим, но возможно, они просто забыли документировать устаревший статус, поэтому я не могу быть уверен.
Итак, что я должен сделать, чтобы очистить это?