いつ使う: メモアプリ、議事録、入力フォームの一時保存など、ユーザーが保存ボタンを押さなくても編集が自動的に DB に反映される UI が欲しいとき。
- 通常のフォーム画面に保存ボタンがない
- タイトル / 本文を入力してフィールドからフォーカスが外れた瞬間 (or 一定時間後) に勝手に保存される
- 「保存しました」表示も出ない (ユーザーは保存を意識する必要なし)
auto_save_memos
├── id PK
├── title TEXT
└── body TEXT
データ的には普通の CRUD。違いはモジュール側の保存処理が UI 操作なしで走る点。
| モジュール | テーブル | 主なフィールド |
|---|---|---|
AutoSaveMemo |
auto_save_memos |
Title / Body などの通常フィールド + AutoSubmitField (UI に表示しない裏方フィールド) |
- 通常の CRUD モジュールとして定義
AutoSubmitFieldDesignをフィールドに 1 つ追加。これがあるとフィールド変更時の自動 Submit が有効になる- DetailLayout には配置しない (UI 表示用ではなく、自動 Submit を有効化する宣言として置く)
- 通常の SubmitButton は不要
サイドバー データ操作/自動保存 → AutoSaveMemo
- 楽観ロック (
OptimisticLockingField) と 自動 Submit (AutoSubmitField) は併用不可。OptimisticLockingNotSupportedWithAutoSubmitエラーになる - 入力中も毎回 DB 通信が走るので、フィールドが多いフォームでは UX/負荷に注意
- アプリ作成パターン一覧 ─ 全パターンのインデックス
- モジュール定義の全体構造
- Field リファレンス ─ AutoSubmitField の詳細
