반응형


1) 없는 컬럼 추가하기
Iteration 1 에서 Product 테이블을 만들었고, 페이지에서 데이터를 추가하고 빼고 하는 페이지들을 만들어 봤다.
Iteration 2 시작에서는 필요한 컬럼중 초기에 만들지 않은 컬럼을 테이블에 추가해 보기로 하겠다.
가격(Price) 컬럼을 만들어 보겠다.

depot> ruby script/generate migration add_price_toProduct price:decimal

위의 명령어를 치게 되면 아래와 같은 .rb 즉 루비 파일이 생성된다.
db/migrate/20080601000002_add_price_to_product.rb

Coordinated Univeral Time, UTC 를 토대로 파일이 만들어지며, 파일 이름은 YYYYMMDDhhmmss 형태로 시간으로 형성된다. 위의 파일을 열면 아래 링크와 같은 코드를 볼 수 있을 것이다.
http://media.pragprog.com/titles/rails3/code/depot_a/db/migrate/20080601000002_add_price_to_product.rb
관련된 설명은 생략하겠다. 지금은 그냥 보기만 해도 프로그램을 해본 지식이 있는 분들이라면 알아볼 수 있을것이다.
이해가 안되더라도 지금은 크게 문제가 되지 않는다.

depot> rake db:migrate

명령어를 치면 Rails 는 위에 만들어진 루비 파일을 적용시킨다.
(주의 할점: 가격 변수 형태를 Decimal 로 잡았다. Float 으로 잡지 않은 이유는 반올림시 Float 형태는 오류가 있기 때문이다. )

다음은 Views 쪽 파일들을 열어 필요한 부분을 수정해야 한다.

depot/app/views/products/index.html.erb

depot/app/views/products/new.html.erb

depot/app/views/products/edit.html.erb

여기까지 수정이 완료 되어 페이지들을 확인해 보면 Price 컬럼이 추가되어 있는걸 볼 수 있다.
서버를 돌리고 있었다 하더라고 다시 실행할 필요가 없는 이유는 페이지에서 Model 에 요청이 들어가면 최근 업데이트된 db 스키마로 자동 업데이트 되기 때문이다.

Download depot_a/app/views/products/show.html.erb

Markup 이 함께 보여지고 싶다면 h 를 제거 하면 된다.
depot/app/views/products/show.html.erb
반응형

+ Recent posts