2016-06-05 1 views
3

У меня есть пара before_actions в моем проекте, которые будут устанавливать/объединять некоторые дополнительные параметры перед вызовом действий REST. Это позволяет мне переопределить некоторые основные методы драгоценных камней с минимальной настройкой.Добавление параметра для Rails 5.1 и новее

Однако я получаю это предупреждение устаревания в журналах сервера при выполнении params.merge!:

DEPRECATION WARNING: Method merge is deprecated and will be removed in Rails 5.1, as ActionController::Parameters no longer inherits from hash. Using this deprecated behavior exposes potential security problems. If you continue to use this method you may be creating a security vulnerability in your app that can be exploited. Instead, consider using one of these documented methods which are not deprecated: http://api.rubyonrails.org/v5.0.0.beta2/classes/ActionController/Parameters.html.

Я посмотрел на ссылку документации, но не может найти какой-либо очевидный метод, который позволит мне добавить параметр программно для объекта params, который не будет вызывать это предупреждение.

Неспособность найти метод, не хэш означает, что мой проект будет несовместим с Rails 5.1 +

любая помощь

ответ

2

У вас нет слияния !, но у вас есть слияние. Поэтому вы все равно должны быть в своем контроллере:

params = ActionController::Parameters.new({ 
     zoo: 'Blijdorp', 
     cage: 'monkeys' 
    }) 

params = params.merge(animal: "Bokito") 

 Смежные вопросы

  • Нет связанных вопросов^_^