我已经设置了这些强有力的参数:
def my_model_params
params.require(:my_model).permit(:field)
end
但有时表单是空的,我会收到这样的错误:
缺少参数或值为空:MY_MODEL
在仍然使用强参数的情况下,如何允许表单为空?
我已经设置了这些强有力的参数:
def my_model_params
params.require(:my_model).permit(:field)
end
但有时表单是空的,我会收到这样的错误:
缺少参数或值为空:MY_MODEL
在仍然使用强参数的情况下,如何允许表单为空?
使用fetch
.
返回给定键的参数.如果找不到 keys , 有几种 Select :如果没有其他参数,它将引发 ActionController::参数未命中错误;如果第二个参数为 给出,然后返回该值(转换为 ActionController::参数(如果可能);如果给定块,则 它将运行并返回其结果.
def my_model_params
params.fetch(:my_model, {})
.permit(:field)
end
您希望使用超过params.permit(my_model: [ :field ])
个实例的原因是,它总是返回ActionController::Parameters
实例,而不是nil.