본문으로 바로가기

[Rails] MODEL

category WEB/ROR 2018. 5. 24. 22:28

CRUD의 C를 진행하기 앞서, 게시물을 생성할 때 담을 DB가 필요하다. post라는 모델을 한 번 만들어보자. post 모델에는 column으로 게시물을 제목을 담을 title, 게시물의 내용을 담을 content가 필요하다. title의 자료형은 string으로, content의 자료형은 text로 하도록 하겠다.


기본적으로 레일즈에서는 rails g model "모델명" 이라는 명령어를 지원한다. 해당 명령어를 입력하면 migration 파일이 생성되는데, 생성된 파일 안에서 필요한 column을 적은 뒤, rake db:migrate 명령어로 테이블을 생성하게 된다.


모델과 함께 한번에 column까지 생성하는 방법도 있는데, rails g model "모델명" 뒤에 column의 이름을 따라 작성하는 방법이다. 지금 우리의 경우는 rails g model post title content 가 될 것이다.(column은 공백으로 구분한다) 다만 자료형을 명시하지 않고 이름만 적는 경우 모두 string으로 생성되므로 우리는 rails g model post title:string content:text라고 자료형을 명시해주도록 할 것이다.



이렇게 작성하고 실행하면 db - migrate에 해당 migration 파일이 생성된다.



이런식으로 말이다. 다만 이렇게만 한다고 테이블이 생성되는 것은 아니다. migration 파일은 설계도의 개념이고,



이렇게 rake db:migrate 명령어를 입력해줘야 비로소 테이블이 생성된다. column을 변경하거나 해 테이블을 날리고 다시 만들어야 할 경우에는, rake db:drop 명령어로 테이블을 날리고 다시 rake db:migrate를 해주면 된다.

'WEB > ROR' 카테고리의 다른 글

[Rails] REST API  (0) 2018.05.24
[Rails] CRUD  (0) 2018.05.24
[Ruby] attr_accessor  (0) 2018.02.22
[Ruby] public, private method  (0) 2018.02.22
[Ruby] 상속  (0) 2018.02.22