小编典典

在 Rails 4 中,`params.require(:person).permit(:name, :age)` 是做什么的?

all

Rails 4 文档中所有强参数的示例都使用

params.require(:person).permit(:name, :age)

require有人可以解构并解释permit这里发生了什么吗?


阅读 64

收藏
2022-08-03

共1个答案

小编典典

控制器中的params看起来像一个 Hash,但它实际上是
的一个实例ActionController::Parameters,它提供了几个方法,例如requirepermit

require方法确保存在特定参数,如果未提供,该require方法将引发错误。ActionController::Parameters它返回传递给
的键的实例require

permit方法返回参数对象的副本,仅返回允许的键和值。当创建一个新的 ActiveRecord 模型时,只有允许的属性被传递到模型中。

它看起来很像以前包含在 ActiveRecord 模型中的白名单,但将它放在控制器中更有意义。

2022-08-03