У меня это в контроллере:
params.require(:item).permit!
Предположим, что это спецификация rspec:
put :update, id: @item.id, item: { name: "new name" }
Он работает как ожидалось, без ошибок. Однако, если я использую это:
put :update, id: @item.id, item: nil
Я получаю ActionController::ParameterMissing
, который я не хочу получать. Это связано с макросами диспетчера, которые я использую для других действий, и через которые я не могу управлять передаваемыми параметрами (макросы проверяют учетные данные пользователя, поэтому мне действительно не нужно фактически тестировать действие #update
, а я просто test before_filters для него).
Итак, мой вопрос: как сделать params[:item]
необязательным, но все же фильтровать в нем атрибуты, если он присутствует?