Rails의 빠른 CRUD 만들기 -Scaffold form(1)
Rails(Ruby on Rails(RoR)이라고 흔히 표기하는데, 저는 Ruby on Rails라는 표기가 Ruby를 의미하는 건지, Rails를 의미하는 건지 직관적으로 이해하지 못 하는 경우가 많은 것같아서, Rails로 표기하겠습니다.)가 스타트업을 위한 빠른 웹개발이 가능한 프레임워크로 알려져 있는데요.
이 말이 어느 정도 사실이라는 것을 Scaffold form을 통해 CRUD를 구현하는 것으로 보여드리고자 합니다.
CRUD — Create, Read, Update, and Delete
CRUD가 뭔지 모를 수도 있을 것 같아 설명하자면, 위의 한 문장으로 모든 설명이 끝납니다. CRUD는 말 그대로 내용을 만들고, 보고, 수정하고, 삭제하는 작업입니다. 웹의 기본이죠.
‘Scaffold’ — (공사장에서 안전을 위해 외부로 설치하는) 뼈대
출처 — 네이버 어학사전
scaffold form이란 것은 scaffold의 정의가 건물 공사의 시작을 의미하는 것처럼, 단순히 정보를 나열하는 웹사이트를 제외한, Input과 Output이 있는 대부분의 웹사이트에서 꼭 필요한 CRUD를 빠르게 만든 form을 말합니다. 얼마나 빠른가 하면, 한 문장이면 Model, View, Controller 등 웹사이트 구축에 필요한 모든 구성요소를 알아서 만들어 줍니다.
자 그럼 한 번 만들어보겠습니다.
$ rails new project
그 다음에 scaffold form을 만들겠습니다.
$ rails generate scaffold HighScore game:string score:integer
이렇게 하면,
싹 만들어집니다. 오른쪽에 폴더들을 보시면, highscore라는 controller를 기반으로 CRUD action과 관련한 view가 전부 설정되어 있는 것을 볼 수 있습니다.
자 이제 서버를 돌려 볼까요?
한 문장이면 다 된다며!! 오류가 왜 뜨는데! 하실 수 있는데,
game:string score:integer
우리는 위 문장에서 game이라는 문자열 DB와 score라는 정수 DB를 받았습니다. DB가 있다는 말은 migration을 꼭 해주어야 한다는 말입니다. 그래서
$ rake db:migrate
해주시고, 페이지를 새로고침해보시면,
이렇게 빈페이지가 뜹니다. 이건 root 설정을 저희가 하지 않아서 그렇고요.
‘자신의 기본 경로’/high_scores 로 가보시면,
이처럼 내가 만든 High Scores와 관련된 페이지를 보실 수 있습니다. 자 이제, 해당 페이지의 New High score를 통해서 DB를 몇 개 만들어보겠습니다.
과정은 그냥 form에 글 쓰는 거랑 똑같다는 것을 알 수 있습니다. show, edit destroy도 모두 가능합니다.
쓰다보니 너무 길어져서, 이 form을 응용해서 customizing하는 기초는 2부에서 쓰도록 하겠습니다. 즐거운 코딩 되세요~