※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
歯医者のwebサイト
Railsで構築した歯科医院向けの予約サイト。
患者がWebフォームから診療内容を選んで予約でき、医院側は予約枠を管理できる。
- 医療機関の予約システムを題材に選び、実務的なCRUDを超えた「予約管理」の流れを学ぶことが目的。
- 特に「既存予約を除いた空き枠を自動表示する仕組み」を作ってみたかった。
- ユーザーが簡単に予約できること。
- 重複予約を防止し、空き枠を自動抽出できること。
- 予約確認メールを送信できること。
- Reservation.open_slots_for(date) で空き枠を抽出。
- ダミーデータは Faker を使って予約を自動生成し、テスト。
- メニューは「初診」「再診」「クリーニング」「矯正相談」から選択。
- 予約完了後は letter_opener で確認メールをシミュレーション。


- 重複予約エラー:ActiveRecord::RecordNotUnique
→ モデルのバリデーションを調整し、同じ日時の予約を制限。 - seedが反映されない問題:
→ rails db:seed 実行後の処理を確認し、正常にダミーデータが投入されるよう修正。 - 予約削除:開発中に rails c を使って Reservation.destroy_all で全削除。


# エラー
Uncaught TypeError: Failed to resolve module specifier "@hotwired/turbo-rails".
Relative references must start with either "/", "./", or "../".
ブラウザが importmap で @hotwired/turbo-rails を使えない
→「turbo-rails」の入れ忘れ
gem "turbo-rails"
bundle install
bin/rails turbo:install
before

after

- 実務でありがちな「予約重複」「メール送信」「ダミーデータ投入」などを実際に体験できた。
- カレンダーUI(予約状況の可視化)を改善したい
- 患者のマイページ(予約確認・変更)を作成したい
- 管理者用ダッシュボードを作成したい