Как сделать необязательный ключ сильных параметров, но все еще фильтровать параметры, вложенные в него?

У меня это в контроллере:

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] необязательным, но все же фильтровать в нем атрибуты, если он присутствует?

Ответы