如果 params.require(:obj) 中允许所有属性怎么办
What if all the attributes are permitted in the params.require(:obj)
假设参数是这样的:
params: { obj: { a: 1, b: 2, c: 3 } }
如果不允许属性 c:
params.require(:obj).permit(:a, :b)
但是,如果obj是必需的,里面的所有属性都是允许的,是否需要在"permit()"中具体添加每个属性?
params.require(:obj)
这将引发 ForbiddenAttributesError。
您可以使用permit!
params.require(:obj).permit!
permit!
允许批量分配所有当前和未来的模型属性。
这是强参数以及所有关于通过控制器和用户端访问属性的内容。
允许的属性是最终用户可编辑和操作的属性,未分配到其中的属性将不会与数据库一起更新。
可以使用permit!对于所有属性,但请确保您需要提供最终用户可访问的所有参数。
params.require(:obj).permit!
permit!
允许批量分配所有当前和未来的模型属性。
假设参数是这样的:
params: { obj: { a: 1, b: 2, c: 3 } }
如果不允许属性 c:
params.require(:obj).permit(:a, :b)
但是,如果obj是必需的,里面的所有属性都是允许的,是否需要在"permit()"中具体添加每个属性?
params.require(:obj)
这将引发 ForbiddenAttributesError。
您可以使用permit!
params.require(:obj).permit!
permit!
允许批量分配所有当前和未来的模型属性。
这是强参数以及所有关于通过控制器和用户端访问属性的内容。
允许的属性是最终用户可编辑和操作的属性,未分配到其中的属性将不会与数据库一起更新。
可以使用permit!对于所有属性,但请确保您需要提供最终用户可访问的所有参数。
params.require(:obj).permit!
permit!
允许批量分配所有当前和未来的模型属性。