我正在像这样使用Pundit宝石:
在控制器中:
def pundit_params_for(record)
params.require(:business)
end
在政策中:
# Strong Params
def permitted_attributes
[]
end
def permitted_attributes_for_create
[
:address,
:business_type,
:city,
:email,
:name,
:phone,
:state,
:website,
:type,
:zip
]
end
def permitted_attributes_for_update
[
:address,
:business_type,
:city,
:email,
:name,
:phone,
:state,
:website,
:type,
:zip
]
end
这可以很好地清理参数,但是当require失败时,它不会引发错误并被捕获以按预期返回422。我确实收到有关不允许的参数的打印消息;但是,在需求失败时不会发生错误抛出,这与Rails的strong参数所期望的一样。当未提供所需的参数时,如何使它失败?