1. ホーム
  2. ruby-on-rails-4

[解決済み] Rails 4で `params.require(:person).permit(:name, :age)` は何をしているのですか?

2022-04-21 12:33:44

質問

Rails 4のドキュメントにあるstrong parametersの例では、すべて

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

で何が起こっているのか、どなたか分解して説明していただけませんか? requirepermit ここで?

解決方法は?

その params のインスタンスであり、コントローラ内ではハッシュのように見えます。 ActionController::Parameters のようないくつかのメソッドを提供します。 requirepermit .

require メソッドは、特定のパラメータが存在することを確認し、それが提供されていない場合は require メソッドはエラーを投げます。のインスタンスを返します。 ActionController::Parameters に渡されたキーに対して require .

permit メソッドは parameters オブジェクトのコピーを返し、許可されたキーと値のみを返します。新しいActiveRecordモデルを作成する場合、許可された属性のみがモデルに渡されます。

以前、ActiveRecordのモデルに含まれていたホワイトリストとよく似ていますが、コントローラにある方が理にかなっています。