如果params.require(:obj)中允许所有属性该怎么办?

时间:2016-09-13 06:54:33

标签: ruby-on-rails params

假设params是这样的:

params: { obj: { a: 1, b: 2, c: 3 } }

如果不允许属性c:

params.require(:obj).permit(:a, :b)

但是,如果obj是必需的并且允许其中的所有属性,是否有必要在" permit()"中专门添加每个属性?

params.require(:obj) 

这将引发ForbiddenAttributesError。

2 个答案:

答案 0 :(得分:1)

您可以使用permit!

params.require(:obj).permit!

permit!允许批量分配所有当前和未来的模型属性。

答案 1 :(得分:0)

强参数以及通过控制器和用户端访问属性的全部内容。

允许的属性是最终用户可编辑和可操作的属性,未分配的属性,不会随数据库更新。

你可以使用许可证!对于所有属性,但请确保您需要让最终用户可以访问所有参数。

params.require(:obj).permit!

permit!允许对所有当前和未来的模型属性进行质量分配。