「あれ?ネストしてるStrong Paramtersってどうやって書くんだっけ?」みたいなのが、起きるのでメモしとく。

ネスト無し

{
  "name": "Jhon",
  "email": "sample@email.com"
}
def params_for_create
  params.permit(:name, :email)
end

ネストが1回

オブジェクト

{
  "name": "Jhon",
  "plan": {
    "name": "自動車保険"
    "price": 1900
  }
}
def params_for_create
  params.permit(:name, plan: [:name, :price])
end

配列

{
  "name": "Jhon",
  "insureds": [
    {
      "name": "Alice"
    },
    {
      "name": "Bob"
    }
  ]
}
def params_for_create
  params.permit(:name, insureds: [:name])
end

ちなみに、配列の中身がオブジェクトではなく数字や文字列が直接並ぶ場合は次の通り。

{
  "name": "Jhon",
  "ids": [1, 2, 3]
}
def params_for_create
  params.permit(:name, ids: [])
end

参考サイト

ネストするStrong Parametersの書きかたRails5 Strong Parametersで複数の配列を許可する