サポート > リポジトリ > 親子関係 > 親モデルが存在しないと子モデルの作成が行えないようにする
ja | en

親モデルの詳細画面に、子モデルの新規登録ボタンを用意します。かつ、子モデルの新規登録ボタンは子モデル側には用意しません。これによって子のデータが存在するとき、必ず(紐づく)親は存在するという運用を実現します。

「顧客(customer)」と「サポート(support)」という2つのモデルを題材とします。

最初に「サポート検索」からサポート検索画面を開きます。この時点では、データは1件も登録されていません。

サポートモデルは、「どの顧客モデルに対してのサポートか」という関係を持っています。そのため、顧客モデルを指定せずにサポートモデルを単独で作成することはできないようになっています。(図1の画面に「新規登録」ボタンは表示されません。)

図1 サポート検索画面

次に、顧客のデータを新規に登録します。
顧客の詳細表示画面に「サポート新規作成」ボタンが用意されています。(図2) 外部キーの関係にあるサポートモデルの新規登録は、対象データ(ここでは顧客データ)の詳細表示画面から行います。

図2 顧客詳細表示画面

「サポート新規作成」ボタンをクリックし、サポート新規登録画面を開いてみます。顧客ID(紐づく親モデルのID)は自動設定かつ読み込み専用としています。(親を変更することはできません。)

図3 サポート新規登録画面

各項目を入力して登録を行います。サポート詳細表示画面から顧客モデルへ戻るための「顧客 一覧表示」「顧客 詳細表示」ボタンが用意されています。

図4 サポート詳細表示画面

子モデルの検索・一覧画面

子モデル(ここではサポートモデル)の検索・一覧画面で「登録」ボタンを非表示とします。

図6 新規登録ボタンを表示しない

外部キーを読み込み専用にする

子モデルがもつ外部キー(顧客ID)を読み込み専用にします。

図7 外部キー項目を読み込み専用とする