RailsのStrong Parameterで配列を許可したい

最近、Ruby on Railsで開発をすることがあり、メンバーが書いたコードを参考させてもらいながら書いたりしています。

今回、Strong Parameterで配列を扱いたかったときに上手く値を取得できなくて、少し詰まったのでログを残して置きます。

やりたかったこと

やりたかったことは、クライアントから以下のようなJSONを受け取り、複数のIDを配列で受け取りたかった。

{
    "xxx_id": "xxx",
    "yyy_ids": [
        "yyyy_1",
        "yyyy_2"
    ]
}
def demo_params
  params.permit(:xxx_id, :yyy_ids)
end

起きた現象

実際に、やりたかったことで書いたdemo_params のようなコードを書いて、複数IDを受け取れるかと思ったが、ログに出力してみると何も表示されませんでした。

解決方法

どうも配列を受け取りたい場合は、以下のようにキーに空配列を指定してあげる必要がありました。

def demo_params
  params.permit(:xxx_id, yyy_ids: [])
end

参考

railsguides.jp