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

所有Rails 4文档中强参数的例子都使用params.require(:person).permit(:name, :age)

有人可以解构和解释什么是发生在requirepermit在这里?

谢谢!

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

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

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

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