Rails의 빠른 CRUD 만들기 -Scaffold form(1)

Changnam Hong
4 min readNov 3, 2015

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 로 가보시면,

scaffold 기본 페이지입니다.

이처럼 내가 만든 High Scores와 관련된 페이지를 보실 수 있습니다. 자 이제, 해당 페이지의 New High score를 통해서 DB를 몇 개 만들어보겠습니다.

기본기본

과정은 그냥 form에 글 쓰는 거랑 똑같다는 것을 알 수 있습니다. show, edit destroy도 모두 가능합니다.

쓰다보니 너무 길어져서, 이 form을 응용해서 customizing하는 기초는 2부에서 쓰도록 하겠습니다. 즐거운 코딩 되세요~

--

--

Changnam Hong

소프트웨어 개발과 관련한 주제로 글을 씁니다.