アクティビティログ機能の実装


スペース内での活動履歴を記録・表示する機能を実装する。

要件

  • ページの作成・編集・削除履歴
  • メンバーの参加・離脱履歴
  • 管理者操作(役割変更、メンバー削除等)の履歴
  • 時系列での表示
  • 管理者のみ閲覧可能

技術的要件

  • SpaceActivityRecord モデルの作成
  • 活動記録のためのサービス層実装
  • 活動履歴表示画面の作成
  • ページネーション対応

データベース

create_table :space_activities do |t|
  t.uuid :id, primary_key: true, default: "generate_ulid()"
  t.uuid :space_id, null: false
  t.uuid :actor_id # 操作したspace_member_id
  t.string :action, null: false # created_page, deleted_member, etc
  t.uuid :target_id # 対象のID(ページID、メンバーIDなど)
  t.string :target_type # Page, SpaceMember, etc
  t.text :metadata # JSON形式で追加情報
  t.timestamps
end

バックリンク

ホーム