LoginSignup
0
0

paramsで配列形式のデータを受け取るには?

Last updated at Posted at 2023-12-23

はじめに

Railsで配列形式のデータ(例えば、tag_ids)をフォームから受け取る方法についての記事です。
具体的なパラメータ構造を以下に示します。

params => 
{
    "article"=>
    {
        "title"=>"title", 
        "tag_ids"=>["1","2"]
    }
}

本記事では、tag_idsが配列としてどのようにフォームから受け取られるかを解説します。

動作環境

ruby : 3.1.4
rails : 7.0.8

どういうケースを想定している?

今回は、多対多の関係を持つテーブルを想定しています。
例としては、以下ER図にあるように、記事(Article)とタグ(Tag)に対して中間テーブル(ArticleTags)が存在しているケースです。

実装

form_with ヘルパーを使ってフォームを設定し、
text_field_tag を使用して tag_ids の配列を作成します。

<%= form_with(model: @article, local: true) do |form| %>
    <%= form.text_field :title %>
    <br>
    <%# 以下タグは必要な配列分増やしてください。 %>
    <%= text_field_tag 'article[tag_ids][]'%>
    <br>
    <%= form.button "Submit",type: "submit" %>
<% end %>
  • text_fieldとtext_field_tagの違いについては以下記事参照

まとめ

本記事では、Railsで多対多の関連を持つテーブルを操作する際に、配列形式でパラメータを受け取る方法について説明しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0