golang framework 중 하나인 buffalo에서

생성은 액션명만 주면 되는데
계층구조로 만들려면 이름을 계층을 줘서 만든다

1. action

추가는
buffalo g a aaa list

이렇게 하면 aaa는
app.go 에 app.GET("/aaa/list", AppList) 가 추가되고
aaa.go 파일, aaa_test.go 가 생성된다.
templates에 aaa 폴더 아래에 list.plush.html 이 추가된다.

buffalo g a bbb/bcd list
이렇게 하면 bcd 는
app.go 에 app.Get("bbb_bcd/list", BbbBcdList) 가 추가되고
actions/bbb 폴더 아래에 bcd.go, bcd_test.go 가 생성된다
templates/bbb/bcd 아래에 list.plush.html 가 추가된다.

삭제는
buffalo destroy action aaa 를 하면 생성됐던 파일 및 app.go의 설정이 지워진다.
그러나, 계층구조로 만든 경우에는
bbb/bcd 를 bbb_bcd 로 변환하기 때문에 파일을 찾지 못해 삭제가 되지 않는다.

삭제는 수동으로

ps : action 생성시 기본은 GET 인데 Post 로 만들 때에는 --method POST 를 추가하면 된다
ex) buffalo g a aaa list create --method POST 를 하면
app.go에 list는 get으로 create는 post로 설정된다.

 

2. resource

action은 만들고 싶은것들을 하나하나 설정할 때 사용하고
resource는 list,show,create,update,destroy를 한번에 생성하여 관리할 때 사용한다.
app.go 에서는 app.Resource("이름", xxxResource{}) 로 설정된다.
장점은 구조만 맞으면 작업량이 줄수 있지만 추가 설정을 하려면
조금 복잡하다.

추가는
buffalo generate resource "리소스이름"  "생성할 컬럼명"
ex) buffalo generate resource efg title desc 를 하면
efg 그룹에 crud가 생성되고 efg table에 column으로 id, title, desc 가 정의된다.

리소스는 그룹으로 만들 수 없다.
eee/efg 로 만들려고 해도 eee_efg로 변경하여 생성된다.
table의 경우 마지막 언더바(_) 이후에 s를 붙여서 생성한다.
eee/efg -> eee_efg -> efg -> efgs 로 table명이 정해진다.
create table efgs

삭제는
애초에 변환해여 생성하므로 삭제도 가능하다
buffalo destroy resource efg
buffalo destroy resource eee/efg   -> 생성할 때 eee/efg로 생성해도 eee_efg로 생성

리소스는 이름에 주의를 하면 된다. 언더바 사용하지 않는것이 좋고
즉 버팔로 가 정의한 구조에 딱맞으면 resource를 쓰고 안맞으면 actions로 일일이 설정

계층구조로 만들면 삭제는 수동으로 해야한다는 것.

 

728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :