10.3.3 포스트 컨트롤러 만들기
포스트 생성, 조회, 수정, 삭제 기능을 처리할 포스트 컨트롤러가 필요하다. app/controller에 post.go 파일을 생성하고 다음과 같이 코드를 작성하자.
▼ app/controllers/post.go
package controllers import ( "github.com/revel/modules/db/app" "github.com/revel/revel" ) type Post struct { *revel.Controller db.Transactional }
Post 구조체를 revel 컨트롤러로 정의하고(*revel.Controller를 임베디드 필드로 지정), 추가로 포스트 컨트롤러에서 데이터베이스 작업을 할 수 있게 db.Transactional도 임베디드 필드로 지정했다. db.Transactional은 Revel의 db 모듈에서 제공하는 것으로, Txn 필드를 통해 데이터베이스에 접근할 수 있다. Revel의 db 모듈에서 제공하는 Transactional 타입(https://github.com/revel/modules/blob/master/db/app/db.go#L41)은 다음과 같다.
▼ db.Transactional
type Transactional struct { *revel.Controller Txn *sql.Tx }