sni*_*tko 21 ruby strong-parameters ruby-on-rails-4
我在我的控制器中有这个:
params.require(:item).permit!
Run Code Online (Sandbox Code Playgroud)
让我们假设这个rspec规范:
put :update, id: @item.id, item: { name: "new name" }
Run Code Online (Sandbox Code Playgroud)
它按预期工作,没有错误.但是,如果我使用这个:
put :update, id: @item.id, item: nil
Run Code Online (Sandbox Code Playgroud)
我得到ActionController::ParameterMissing了我不想得到的东西.它与我用于其他操作的控制器宏有关,通过它我无法控制被发送的参数(宏检查用户凭据,因此我并不真正关心实际测试#update操作,而是我只测试before_filters for它).
所以我的问题是:如果它存在的话,如何在其中制作params[:item]可选但仍然过滤的属性?