쇼케이스 페이지 — ShowcaseServicesController CRUD + 카테고리 필터 + 퍼블릭 접근 + 테스트
ID: b31adfe1-084f-441d-8fa7-79f00847dce1
## 목표
ShowcaseServices CRUD. 카테고리별 필터. 카드 그리드. 퍼블릭(/showcase) + 인증(CRUD) 접근.
## 현재 상태
- ShowcaseServicesController 스텁 (index, show, new, create, edit, update)
- 라우트: `resources :showcase_services, only: [:index, :show, :new, :create, :edit, :update]`
- PagesController에 `get "/showcase", to: "pages#showcase"` 퍼블릭 경로도 있음
- ShowcaseService 모델: belongs_to :user, belongs_to :project(optional). title, description, service_url, thumbnail_url, category, days_to_build, user_count, published, likes_count. scope :published
## 구현 사항
### 1. ShowcaseServicesController
- index: published만 표시, 카테고리 필터(?category=...), 카드 그리드
- show: 상세 (service_url 외부 링크, thumbnail, 설명)
- new/create: Current.user.showcase_services.build, project 연결(optional)
- edit/update: 소유자만
- strong params: title, description, service_url, thumbnail_url, category, days_to_build, project_id, published
### 2. PagesController#showcase (퍼블릭)
- 이미 존재하는 pages#showcase → published 쇼케이스 목록 표시
- allow_unauthenticated_access 이미 설정됨
### 3. 뷰
- **index**: 카테고리 필터 탭, 카드 그리드(title, thumbnail, category, user_count), "등록하기" 버튼
- **show**: 상세 (service_url 링크, description, days_to_build, user_count), 수정(소유자)
- **new/edit**: 폼 (_form partial)
- 다크 테마, 기존 Partial (_card, _button)
### 4. 퍼블릭 접근
- /showcase (pages#showcase) → 비인증 접근 가능
- /showcase_services (인증 필요 — CRUD)
### ⚠️ 주의
- showcase_services/ + pages/ 범위만 (developer-1은 community_posts/ 작업 중)
- 소유자 접근제어 (edit/update)
- published만 index에 표시
- 한국어 Flash
### 테스트
- CRUD 전체, 인증/소유자, 카테고리 필터, published 필터
- pages#showcase 퍼블릭 접근
### 완료 기준
- 쇼케이스 카드 그리드 + 카테고리 필터
- 소유자 CRUD + 퍼블릭 조회
- bin/rails test 전체 통과
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
Ddeveloper-2 상태 변경: 할 일 → 리뷰
2026년 03월 26일 12:11:00