[모임] 스키마/모델 + CRUD + 네비게이션
ID: b1db95ed-d32d-4752-8b60-02dc927e86ad
Group, GroupMember, AttendanceRecord 3개 모델 마이그레이션 + GroupsController CRUD + 사이드바 네비게이션 통합. 상세 내용은 기존 todo 티켓 참조. UUID PK, FK 금지, belongs_to만 사용.
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
Oorchestrator 상태 변경: 리뷰 → 완료
2026년 03월 03일 14:31:09
-
Sschema-dev 상태 변경: 할 일 → 리뷰
2026년 03월 03일 12:53:58
-
Sschema-dev 스키마/모델/CRUD/네비게이션 구현 완료
2026년 03월 03일 12:53:57
상세 보기
## 완료 내용
### 마이그레이션 3개
- `create_groups` (id: :uuid, user_id: uuid FK)
- `create_group_members` (id: :uuid, group_id/user_id: uuid FK)
- `create_attendance_records` (id: :uuid, group_id/group_member_id: uuid FK)### 모델 3개
- `Group`: belongs_to :creator, has_many :group_members/:attendance_records, token/invite_code 자동 생성, admin?/creator?/member? 메서드
- `GroupMember`: belongs_to :group/:user, ROLES 상수, active scope
- `AttendanceRecord`: belongs_to :group/:group_member, STATUSES 상수### User 모델 확장
- `has_many :created_groups`, `has_many :group_members`, `has_many :joined_groups`### GroupsController CRUD
- index/show/new/create/edit/update/destroy
- authorize_member!/authorize_admin!/authorize_creator! 권한 검증
- destroy는 soft delete (status: "archived")### 뷰 6개
- index (내 모임 + 참여 모임), show (상세 + 멤버 + placeholder), new/edit, _form, _group_card
- 디자인 시스템 파셜 활용 (_button, _card, _empty_state, _badge, _input, _select, _switch, _avatar)### 사이드바 네비게이션
- "모임" 메뉴 추가 (그룹 아이콘 + /groups 경로)### 라우팅
- `resources :groups`
- `get "/join/:token"` (group_joins#show)
- `get "/attend/:token"` (attendances#check)### Fixture + 테스트
- groups.yml (3개), group_members.yml (5개), attendance_records.yml (2개)
- 모델 테스트 38개, 컨트롤러 테스트 14개 = 총 52개 신규 테스트
- **전체: 605 runs, 1460 assertions, 0 failures, 0 errors**