我的控制器中有这个:
params.require(:item).permit!
让我们假设这个 rspec 规范按预期工作:
put :update, id: @item.id, item: { name: "new name" }
但是,以下原因ActionController::ParameterMissing
:
put :update, id: @item.id, item: nil
它与我用于其他操作并且我无法控制发送的参数的控制器宏有关(宏检查用户凭据,所以我并不真正关心实际测试#update
操作,而我只是测试 before_filters它)。
所以我的问题是:如果它存在,我如何制作可选的,但仍然过滤其中的属性?params[:item]