Rails 4 文档中所有强参数的示例都使用
params.require(:person).permit(:name, :age)
require有人可以解构并解释permit这里发生了什么吗?
require
permit
控制器中的params看起来像一个 Hash,但它实际上是 的一个实例ActionController::Parameters,它提供了几个方法,例如require和permit。
params
ActionController::Parameters
该require方法确保存在特定参数,如果未提供,该require方法将引发错误。ActionController::Parameters它返回传递给 的键的实例require。
该permit方法返回参数对象的副本,仅返回允许的键和值。当创建一个新的 ActiveRecord 模型时,只有允许的属性被传递到模型中。
它看起来很像以前包含在 ActiveRecord 模型中的白名单,但将它放在控制器中更有意义。