クラッシュコース101
10 モジュール
5 週

データベースへのレコードの追加

クリックでコピー

データベースにレコードを追加するためのビジネスプロセスを作成する


さて、Save ボタンを押すことで、入力されたデータをデータベースに転送し、新しい国を作成するプロセスを整理する必要があります。そして、これはより詳細に調べる価値があります。

技術的には、すべてが前のモジュールからのアクションと非常に似ています。特定のアクションを実行するエンドポイント(私たちの場合、これはデータベースへの新しいレコードの作成です)があり、そこにデータを転送し、実行を開始する必要があります。違いは、(XやYの時のように)個々のフィールドだけが転送されるのではなく、オブジェクト全体が転送される点です。データベースを設計する段階でモデルを作成し、エンドポイントを起動するために、このモデルのレディメイドのオブジェクトを渡す必要があるのです。

しかし、オブジェクト自体は、別々のフィールドから組み立てられる。これを行うには、適切な Makeブロック(この例では Make countryを選択し、入力フィールドのデータをそこに渡す必要があります。

モデルにはかなり多くのフィールドがあることがわかりますが、その多くはシステムフィールド(ID, CreatedAt, UpdatedAt, DeletedAt)で、これは自動的に作成されることを意味します。都市の関連テーブルの情報を転送して、この国にある都市を示すことも可能ですが、この段階では、まだデータベースに都市が一つもないので、意味がありません。したがって、このフィールドは空白のままにしておきます。

次のことを行う必要があります。

  • 入力フィールドからデータを収集する
  • データベースに書き込むためのオブジェクトを生成する (Makeブロック)
  • 完成したオブジェクトを、データベースにレコードを作成するエンドポイントに渡す(POST) に渡す。

完成形では、ビジネスプロセスは次のようになります。


このとき、もう一度注意しなければならないのは Makeブロック自体はデータベースにレコードを作成しません。それはオブジェクトを形成するだけです。しかし、このオブジェクトが将来どのように使われるか(データベースやその他の場所に書き込むために渡されるか)は、アプリケーションのロジックにのみ依存します。

これについては、作成プロセスが完了すれば、すでに動作可能ですが、実際に使用するには、まだ不便です。少なくとも、確認メッセージを追加する価値はあります。そのためには、録画結果そのものを調べ(_success)を表示し、その結果に応じて(If-Else)、対応するメッセージを表示し(Show Notificationブロック)を表示し、さらにモーダルウィンドウを自動的に閉じます(Modal Hide).閉じる( )は、モーダルウィンドウの Cancelボタンに割り当ててください。

Was this article helpful?
まだ答えをお探しですか?