BackEnd

関連するモデルのレコードを一緒に作成する方法

投稿日:

はじめに

フォームからレコードを作成する際に、関連するモデルのレコードを一緒に作成したい場合があると思います。
(例えばbookレコードとauthorレコードなど)
今回はRailsで一度に関連するモデルのレコードを一緒に作成する方法を紹介します。

前提条件

ruby 2.4.1
rails 5.1.4

実装

まず、モデルクラスを作成します(migrationファイルはあるものとします)

モデルの作成

今回はbookクラスとauthorクラスを作成します。
それぞれの内容は下記のとおりです。

 
通常のリレーションに加えて、親であるauthorクラスには「accepts_nested_attributes_for :books」の一文を追加します。

コントローラの作成

今回はauthorのみコントローラを作成します。
内容は下記のとおりです。

 
#newではauthorクラスのインスタンスを作成後に「build」でbookクラスのインスタンスを1つ作成しています。
また、Strong Parametersにbook用の項目(books_attributes: [:name])を追加します。

Viewの作成

authorクラスのフォームを作成します。
内容は下記のとおりです。

 
「f.fields_for」以下でbookクラスのパラメータを入力するテキストボックスを作成しています。

さいごに

今回は「accepts_nested_attributes_for」を使って関連するモデルクラスのレコードを一緒に作成する方法を紹介しました。

page_footer_responsive




-BackEnd
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Pythonコードが育っても品質を維持するツールを考える[Ruff Pyright]

1 はじめに2 各ツールの目的2.1 Ruff2.1.1 Pylint (参考)2.2 Pyright3 各ツールの設定 (VSCodeでの使用例)3.1 Ruff3.2 Pyright4 pre-c ...

aws

ALB+EC2な環境でhttpをhttpsにリダイレクトする

1 はじめに1.1 前提条件2 ALBの設定3 Nginxの設定3.1 注意点4 さいごに はじめに httpsに対応済みのWebサイトの場合、httpでアクセスされた時にhttpsでリダイレクトする ...

Rust入門してみた その3 Enum / match / Option編

1 はじめに2 Enum2.1 Enumの定義2.2 パターンマッチ2.3 Enumへのメソッド実装3 よく使う標準Enum3.1 Option3.2 Result4 おすすめ書籍 はじめに 前回に引 ...

laravel logo

Laravelでの署名付きURL生成

1 はじめに2 今回のサンプル3 ビュー4 ルーティング5 コントローラー5.1 署名付きURLの生成5.2 期限ありの署名付きURLの生成5.3 署名のチェック6 おまけ6.1 署名の仕組7 さいご ...

WebアプリケーションにLINEログインを組み込む

1 はじめに2 LINEログインとは2.1 LINEログインでできること2.2 LINEログインのフロー3 LINEログインの設定3.1 プロバイダーを新規作成する3.2 チャネルを作成する3.3 リ ...

フォロー

blog-page_side_responsive

2017年12月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。