メンバー招待機能の実装
メールアドレスによるスペースへの招待機能を実装する。
要件
- スペース管理者がメールアドレスでメンバーを招待できる
- 招待メールの送信(招待リンク付き)
- 招待の承認・拒否機能
- 招待の期限切れ機能(7日間)
- 招待済み一覧の表示
技術的要件
SpaceInvitationRecord
モデルの作成- 招待メール送信のための
SpaceInvitationMailer
作成 - 招待承認/拒否のためのコントローラー作成
- 招待フォームの作成
データベース
create_table :space_invitations do |t|
t.uuid :id, primary_key: true, default: "generate_ulid()"
t.uuid :space_id, null: false
t.uuid :inviter_id, null: false # 招待した人のspace_member_id
t.string :email, null: false
t.string :status, null: false # pending, accepted, declined, expired
t.datetime :expires_at, null: false
t.datetime :accepted_at
t.timestamps
end