Yuki's Tech Blog

仕事で得た知見や勉強した技術を書きます。

【Rails】ハッシュを要素とする配列をストロングパラメータで受け取る方法をざっくりまとめてみた

目次

概要

業務でハッシュを要素とする配列をストロングパラメータで受け取るのを実装したので、忘れないように実装方法を振り返ってみようと思います。

実装

フロント側から渡す値

以下のような値をフロント側から渡します。

params = {
  products: [
    {
      date: '2022-11-25',
      weight: 70,    
    },
    {
      date: '2022-11-25',
      weight: 60,
    },
  ]
}

ストロングパラメータ

  def create_params    
    params.permit(
      products: [
        :date,
        :weight,
      ],
    ).to_h[:products]
  end

実行結果

[{"date"=>"2022-11-25", "weight"=>70},
 {"date"=>"2022-11-25", "weight"=>60}]

最後に to_h[:products] を呼び出すことで、ActionController::Parametersのインスタンスを、ハッシュを要素とする配列に変換できます。あとはそれぞれのハッシュでインスタンスを作成してsave!を使うことで、各要素をDBに保存することができます。

感想

permit内でのキーの指定方法が独特なので、また使う場面が出てきたら、この記事を見ようと思います。

参考記事

【Rails】 permitメソッドを使ってストロングパラメーターにしよう | Pikawaka