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