기도 동역자 시스템 (PrayerPartner + 검색/요청/수락)
ID: 95ca71a8-3c7d-41ae-88e6-aa8fcbcfd21a
## 목표
PrayerPartner 모델을 생성하고 동역자 검색, 요청 보내기, 수락/거절, 동역자 기도제목 공유 기능 구현
## 모델
### PrayerPartnership (중간 테이블)
- requester_id: UUID FK → users (요청 보낸 사람)
- receiver_id: UUID FK → users (요청 받은 사람)
- status: integer enum (pending: 0, accepted: 1, rejected: 2)
- INDEX: (requester_id, receiver_id) UNIQUE
- 자기 자신 요청 방지: validate requester != receiver
## 컨트롤러
### PrayerPartnersController
- index: 내 동역자 목록 (accepted) + 받은 요청 (pending)
- search: 동역자 검색 (params[:q] → email/nickname LIKE)
- create: 동역자 요청 보내기 (requester=current_user, receiver=params[:user_id])
- accept: 요청 수락 (status → accepted)
- reject: 요청 거절 (status → rejected)
- destroy: 동역자 관계 삭제
- partner_prayers: 특정 동역자의 공개 기도제목 조회
## 뷰
- index: 동역자 목록 + 받은 요청 + 검색
- _partner_card: 동역자 카드 (아바타, 닉네임, 상태)
- _request_card: 요청 카드 (수락/거절 버튼)
- partner_prayers: 동역자 기도제목 목록
## 파일 담당
- 수정 가능: app/models/prayer_partnership.rb, app/models/user.rb (has_many 추가), db/migrate/*, app/controllers/prayer_partners_controller.rb, app/views/prayer_partners/*, test/*
- 수정 금지: config/routes.rb (social-dev가 관리)
## 테스트
- 모델: PrayerPartnership validations, self-request 방지
- 컨트롤러: index, search, create, accept, reject, destroy, partner_prayers
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
팀팀리드 상태 변경: 리뷰 → 완료
2026년 03월 02일 04:07:23
-
Ppartner-dev 상태 변경: 진행 중 → 리뷰
2026년 03월 02일 04:06:08
-
Ppartner-dev 기도 동역자 시스템 구현 완료
2026년 03월 02일 04:06:08
상세 보기
## 생성된 파일
- `db/migrate/20260302140000_create_prayer_partnerships.rb` - 마이그레이션 (UUID PK, unique index)
- `app/models/prayer_partnership.rb` - 모델 (enum, validations, scopes, partner_of)
- `app/controllers/prayer_partners_controller.rb` - 컨트롤러 (index, search, create, accept, reject, destroy, prayers)
- `app/views/prayer_partners/index.html.erb` - 동역자 목록 (받은 요청, 보낸 요청, 내 동역자)
- `app/views/prayer_partners/search.html.erb` - 동역자 검색 (이메일/닉네임)
- `app/views/prayer_partners/prayers.html.erb` - 동역자 기도제목 조회
- `app/views/prayer_partners/_partner_card.html.erb` - 동역자 카드 파셜
- `app/views/prayer_partners/_request_card.html.erb` - 요청 카드 파셜
- `test/fixtures/prayer_partnerships.yml` - 테스트 fixture
- `test/models/prayer_partnership_test.rb` - 모델 테스트 13개
- `test/controllers/prayer_partners_controller_test.rb` - 컨트롤러 테스트 15개## 수정된 파일
- `app/models/user.rb` - sent_partnerships, received_partnerships 연관관계 추가
- `test/fixtures/prayer_requests.yml` - admin_partners_prayer fixture 추가## 테스트 결과
- 전체: 297 runs, 677 assertions
- 신규 테스트 28개 전부 통과
- 기존 실패 1개 (Qt::MeditationsControllerTest - 기존 이슈, 본 작업과 무관)## 주요 기능
- 동역자 검색 (이메일/닉네임 LIKE, SQL injection 방지)
- 동역자 요청 보내기/수락/거절
- 동역자 목록 관리 (관계 해제)
- 동역자 기도제목 조회 (partners/partners_qt_plan visibility)
- 자기 자신 요청 방지, 중복 요청 방지 -
Ppartner-dev 작업 시작 - 기도 동역자 시스템
2026년 03월 02일 04:02:09
상세 보기
## 작업 계획
1. 마이그레이션 생성 (CreatePrayerPartnerships)
2. PrayerPartnership 모델 + User 연관관계
3. PrayerPartnersController
4. 뷰 파일 (index, search, prayers, partials)
5. Fixture + 테스트 (모델 + 컨트롤러)
6. 전체 테스트 통과 확인 -
Ppartner-dev 티켓 클레임 완료
2026년 03월 02일 04:02:03