Rails 4ドキュメントの強力なパラメータのすべての例で使用
params.require(:person).permit(:name, :age)
誰かが解体とで何が起きているかを説明してもらえますrequire
し、permit
ここに?
Rails 4ドキュメントの強力なパラメータのすべての例で使用
params.require(:person).permit(:name, :age)
誰かが解体とで何が起きているかを説明してもらえますrequire
し、permit
ここに?
回答:
params
ハッシュのようなコントローラのルックスで、それが実際のインスタンスのActionController::Parameters
ようないくつかの方法を提供、require
などをpermit
。
このrequire
メソッドは、特定のパラメーターが存在することを確認します。指定されていない場合、require
メソッドはエラーをスローします。にActionController::Parameters
渡されたキーのインスタンスを返しますrequire
。
このpermit
メソッドはパラメーターオブジェクトのコピーを返し、許可されたキーと値のみを返します。新しいActiveRecordモデルを作成すると、許可された属性のみがモデルに渡されます。
以前はActiveRecordモデルに含まれていたホワイトリストによく似ていますが、コントローラーに含める方が理にかなっています。
true
、permitted?
メソッドに応答します。デフォルトでは、インスタンスのActionController::Parameters
クラスが返されますfalse
ためにpermitted?
応答true
するpermitted?
パラメータオブジェクトは、質量割り当てに使用できることを意味します。そうでない場合、アプリはForbiddenAttributesエラーをスローします。
permit
オンrequire
にすると、必要なパラメーターが許可され、返されるオブジェクトに含まれますか?
より正確に言うと、たとえば、やって.new(...)
、そこにする必要があり:person
、ハッシュが必要と人のハッシュのみを受け入れるで示さ:name
及び:age
許可証で示されます。
例:
.new(person: { name: "Bhojendra", age: 32 }) // okay
.new(person: { name: "Rauniyar" }) // okay
.new(person: { name: "Bhojendra", other: 'asdf' }) // not okay, other not permitted
.new(person: { full_name: "Bhojendra Rauniyar" }) // not okay, full_name not permitted
.new(detail: { name: "Bhojendra", age: 32 }) // not okay, must be person
not okay
例は何を視覚化しますか?
permit
いrequire
ます。